Methods, systems, and computer program products for navigating between visual components

ABSTRACT

Methods, systems, and computer program products are described comprising a device configured to: present a first window of the first application in a first application region of a presentation space of the display; detect first user input in connection with the first window of the first application; in response to the detection of the first user input in connection with the first window of the first application, present a representation of a second window of the second application in a menu, in a first particular region of the presentation space of the display, for displaying the second window of the second application, in a second application region in the presentation space of the display, the first particular region: located in a first location adjacent to a second location of the first application region, operable for being at least one of re-sized or moved in response to the first application region being at least one of re-sized or moved, and operable for being hidden in response to the first application region being maximized, and re-presented in response to the first application region being returned to a non-maximized state; detect second user input in connection with the representation of the second window of the second application in the menu; and in response to the detection of the second user input in connection with the representation of the second window of the second application in the menu, present the second window of the second application.

RELATED APPLICATIONS

The present application is continuation of, and claims priority to U.S.patent application Ser. No. 14/173,806, titled “METHODS, SYSTEMS, ANDCOMPUTER PROGRAM PRODUCTS FOR NAVIGATING BETWEEN VISUAL COMPONENTS,”filed Feb. 5, 2014; which, in turn, is a continuation-in-part of, andclaims priority to U.S. patent application Ser. No. 12/868,767, titled“METHODS, SYSTEMS, AND COMPUTER PROGRAM PRODUCTS FOR NAVIGATING BETWEENVISUAL COMPONENTS,” filed on Aug. 26, 2010, now issued as U.S. Pat. No.8,661,361; U.S. patent application Ser. No. 12/956,008, titled “METHODS,SYSTEMS, AND COMPUTER PROGRAM PRODUCTS FOR BINDING ATTRIBUTES BETWEENVISUAL COMPONENTS,” filed on Nov. 30, 2010, now issued as U.S. Pat. No.8,780,130; and U.S. patent application Ser. No. 12/955,993, titled“METHODS, SYSTEMS, AND COMPUTER PROGRAM PRODUCTS FOR AUTOMATICALLYSCROLLING ITEMS IN A SELECTION CONTROL,” filed on Nov. 30, 2010, all ofwhich are incorporated herein by reference in their entirety for allpurposes.

BACKGROUND

Cluttered desktops on desktop, notebook, and handheld devices arecommon. Navigating among visual components of various applicationsrequires locating a desired visual component in the clutter and/orinteroperating with a standard user interface element such as a task barand/or application menu of a desktop that remains in a single locationand requires the same types of inputs and user movements for eachapplication and/or visual component to be located. This may require auser to repeat a similar and/or same set of movements over and over.Further, a task bar or other standard application navigation userinterface may be located in a location that is convenient for someapplications but inconvenient for others for a user. This creates a lotof input overhead in cases where switching between applications isfrequent. Input to bring an application into focus is essentiallynon-productive input, as it is not related to any of the tasks performedby the applications a user is interacting with.

Accordingly, there exists a need for methods, systems, and computerprogram products for navigating between visual components.

SUMMARY

The following presents a simplified summary of the disclosure in orderto provide a basic understanding to the reader. This summary is not anextensive overview of the disclosure and it does not identifykey/critical elements of the invention or delineate the scope of theinvention. Its sole purpose is to present some concepts disclosed hereinin a simplified form as a prelude to the more detailed description thatis presented later.

Methods and systems are described for navigating between visualcomponents. A first visual component, of a first application in aplurality of applications, is detected in a first application region ofa presentation space of a display device. A first navigation control ispresented, in a first navigation region determined based on the firstapplication region, for navigating to a second visual component, of asecond application in the plurality, in a second application region inthe presentation space. A user input corresponding to the firstnavigation control is detected. In response to the detected user input,navigation information is sent to navigate to the second visualcomponent.

BRIEF DESCRIPTION OF THE DRAWINGS

Objects and advantages of the present invention will become apparent tothose skilled in the art upon reading this description in conjunctionwith the accompanying drawings, in which like reference numerals havebeen used to designate like or analogous elements, and in which:

FIG. 1 is a block diagram illustrating an exemplary hardware deviceincluded in and/or otherwise providing an execution environment in whichthe subject matter may be implemented;

FIG. 2 is a flow diagram illustrating a method for navigating betweenvisual components according to an aspect of the subject matter describedherein;

FIG. 3 is a block diagram illustrating an arrangement of components fornavigating between visual components according to another aspect of thesubject matter described herein;

FIG. 4a is a block diagram illustrating an arrangement of components fornavigating between visual components according to another aspect of thesubject matter described herein;

FIG. 4b is a block diagram illustrating an arrangement of components fornavigating between visual components according to another aspect of thesubject matter described herein;

FIG. 4c is a block diagram illustrating an arrangement of components fornavigating between visual components according to another aspect of thesubject matter described herein;

FIG. 4d is a block diagram illustrating an arrangement of components fornavigating between visual components according to another aspect of thesubject matter described herein;

FIG. 5 is a network diagram illustrating an exemplary system fornavigating between visual components according to another aspect of thesubject matter described herein;

FIG. 6a is a diagram illustrating a user interface presented via adisplay according to another aspect of the subject matter describedherein;

FIG. 6b is a diagram illustrating a user interface presented via adisplay according to another aspect of the subject matter describedherein;

FIG. 6c is a diagram illustrating a user interface presented via adisplay according to another aspect of the subject matter describedherein;

FIG. 6d is a diagram illustrating a user interface presented via adisplay according to another aspect of the subject matter describedherein; and

FIG. 6e is a diagram illustrating a user interface presented via adisplay according to another aspect of the subject matter describedherein.

DETAILED DESCRIPTION

One or more aspects of the disclosure are described with reference tothe drawings, wherein like reference numerals are generally utilized torefer to like elements throughout, and wherein the various structuresare not necessarily drawn to scale. In the following description, forpurposes of explanation, numerous specific details are set forth inorder to provide a thorough understanding of one or more aspects of thedisclosure. It may be evident, however, to one skilled in the art thatone or more aspects of the disclosure may be practiced with a lesserdegree of these specific details. In other instances, well-knownstructures and devices are shown in block diagram form in order tofacilitate describing one or more aspects of the disclosure.

An exemplary device included in an execution environment that may beconfigured according to the subject matter is illustrated in FIG. 1. Anexecution environment includes an arrangement of hardware and,optionally, software that may be further configured to include anarrangement of components for performing a method of the subject matterdescribed herein. An execution environment includes and/or is otherwiseprovided by one or more devices. An execution environment may include avirtual execution environment including software components operating ina host execution environment. Exemplary devices included in or otherwiseproviding suitable execution environments for configuring according tothe subject matter include personal computers, notebook computers,tablet computers, servers, handheld and other mobile devices,multiprocessor devices, distributed devices, consumer electronicdevices, routers, communication servers, and/or other network-enableddevices. Those skilled in the art will understand that the componentsillustrated in FIG. 1 are exemplary and may vary by particular executionenvironment.

FIG. 1 illustrates hardware device 100 included in execution environment102. FIG. 1 illustrates that execution environment 102 includesinstruction-processing unit (IPU) 104, such as one or moremicroprocessors; physical processor memory 106 including storagelocations identified by addresses in a physical memory address space ofIPU 104; persistent secondary storage 108, such as one or more harddrives and/or flash storage media; input device adapter 110, such as akey or keypad hardware, a keyboard adapter, and/or a mouse adapter;output device adapter 112, such as a display or audio adapter forpresenting information to a user; a network interface component,illustrated by network interface adapter 114, for communicating via anetwork such as a LAN and/or WAN; and a communication mechanism thatcouples elements 104-114, illustrated as bus 116. Elements 104-114 maybe operatively coupled by various means. Bus 116 may comprise any typeof bus architecture, including a memory bus, a peripheral bus, a localbus, and/or a switching fabric.

IPU 104 is an instruction execution machine, apparatus, or device.Exemplary IPUs include one or more microprocessors, digital signalprocessors (DSPs), graphics processing units, application-specificintegrated circuits (ASICs), and/or field programmable gate arrays(FPGAs). In the description of the subject matter herein, the terms“IPU” and “processor” are used interchangeably. IPU 104 may accessmachine code instructions and data via one or more memory address spacesin addition to the physical memory address space. A memory address spaceincludes addresses identifying locations in a processor memory. Theaddresses in a memory address space are included in defining a processormemory. IPU 104 may have more than one processor memory. Thus, IPU 104may have more than one memory address space. IPU 104 may access alocation in a processor memory by processing an address identifying thelocation. The processed address may be in an operand of a machine codeinstruction and/or may be identified in a register or other portion ofIPU 104.

FIG. 1 illustrates virtual processor memory 118 spanning at least partof physical processor memory 106 and at least part of persistentsecondary storage 108. Virtual memory addresses in a memory addressspace may be mapped to physical memory addresses identifying locationsin physical processor memory 106. An address space for identifyinglocations in a virtual processor memory is referred to as a virtualmemory address space; its addresses are referred to as virtual memoryaddresses; and its processor memory is known as a virtual processormemory or virtual memory. The term “processor memory” may refer tophysical processor memory 106 and/or virtual processor memory 118depending on the context in which the term is used.

Physical processor memory 106 may include various types of memorytechnologies. Exemplary memory technologies include static random accessmemory (SRAM) and/or dynamic RAM (DRAM) including variants such as dualdata rate synchronous DRAM (DDR SDRAM), error correcting codesynchronous DRAM (ECC SDRAM), and/or RAMBUS DRAM (RDRAM). Physicalprocessor memory 106 may include volatile memory as illustrated in theprevious sentence and/or may include nonvolatile memory such asnonvolatile flash RAM (NVRAM) and/or ROM.

Persistent secondary storage 108 may include one or more flash memorystorage devices, one or more hard disk drives, one or more magnetic diskdrives, and/or one or more optical disk drives. Persistent secondarystorage may include removable media. The drives and their associatedcomputer-readable storage media provide volatile and/or nonvolatilestorage for computer-readable instructions, data structures, programcomponents, and other data for execution environment 102.

Execution environment 102 may include software components stored inpersistent secondary storage 108, in remote storage accessible via anetwork, and/or in a processor memory. FIG. 1 illustrates executionenvironment 102 including operating system 120, one or more applications122, and other program code and/or data components illustrated by otherlibraries and subsystems 124. In an aspect, some or all softwarecomponents may be stored in locations accessible to IPU 104 in a sharedmemory address space shared by the software components. The softwarecomponents accessed via the shared memory address space are stored in ashared processor memory defined by the shared memory address space. Inanother aspect, a first software component may be stored in one or morelocations accessed by IPU 104 in a first address space and a secondsoftware component may be stored in one or more locations accessed byIPU 104 in a second address space. The first software component isstored in a first processor memory defined by the first address spaceand the second software component is stored in a second processor memorydefined by the second address space.

Software components typically include instructions executed by IPU 104in a computing context referred to as a “process”. A process may includeone or more “threads”. A “thread” includes a sequence of instructionsexecuted by IPU 104 in a computing sub-context of a process. The terms“thread” and “process” may be used interchangeably herein when a processincludes only one thread.

Execution environment 102 may receive user-provided information via oneor more input devices illustrated by input device 128. Input device 128provides input information to other components in execution environment102 via input device adapter 110. Execution environment 102 may includean input device adapter for a keyboard, a touch screen, a microphone, ajoystick, a television receiver, a video camera, a still camera, adocument scanner, a fax, a phone, a modem, a network interface adapter,and/or a pointing device, to name a few exemplary input devices.

Input device 128 included in execution environment 102 may be includedin device 100 as FIG. 1 illustrates or may be external (not shown) todevice 100. Execution environment 102 may include one or more internaland/or external input devices. External input devices may be connectedto device 100 via corresponding communication interfaces such as aserial port, a parallel port, and/or a universal serial bus (USB) port.Input device adapter 110 receives input and provides a representation tobus 116 to be received by IPU 104, physical processor memory 106, and/orother components included in execution environment 102.

Output device 130, in FIG. 1, exemplifies one or more output devicesthat may be included in and/or may be external to and operativelycoupled to device 100. For example, output device 130 is illustratedconnected to bus 116 via output device adapter 112. Output device 130may be a display device. Exemplary display devices include liquidcrystal displays (LCDs), light emitting diode (LED) displays, andprojectors. Output device 130 presents output of execution environment102 to one or more users. In some embodiments, an input device may alsoinclude an output device. Examples include a phone, a joystick, and/or atouch screen. In addition to various types of display devices, exemplaryoutput devices include printers, speakers, tactile output devices suchas motion-producing devices, and other output devices producing sensoryinformation detectable by a user.

A device included in or otherwise providing an execution environment mayoperate in a networked environment communicating with one or moredevices via one or more network interface components. The terms“communication interface component” and “network interface component”are used interchangeably. FIG. 1 illustrates network interface adapter(NIA) 114 as a network interface component included in executionenvironment 102 to operatively couple device 100 to a network. A networkinterface component includes a network interface hardware (NIH)component and optionally a software component.

Exemplary network interface components include network interfacecontroller components, network interface cards, network interfaceadapters, and line cards. A node may include one or more networkinterface components to interoperate with a wired network and/or awireless network. Exemplary wireless networks include a BLUETOOTHnetwork, a wireless 802.11 network, and/or a wireless telephony network(e.g., a cellular, PCS, CDMA, and/or GSM network). Exemplary networkinterface components for wired networks include Ethernet adapters,Token-ring adapters, FDDI adapters, asynchronous transfer mode (ATM)adapters, and modems of various types. Exemplary wired and/or wirelessnetworks include various types of LANs, WANs, and/or personal areanetworks (PANs). Exemplary networks also include intranets and internetssuch as the Internet.

The terms “network node” and “node” in this document both refer to adevice having a network interface component for operatively coupling thedevice to a network. The terms “device” and “node” as used hereinfurther refer to one or more devices and nodes, respectively, providingand/or otherwise included in an execution environment unless clearlyindicated otherwise.

The block diagram in FIG. 3 illustrates an exemplary system fornavigating between visual components according to the method illustratedin FIG. 2. FIG. 3 illustrates a system, adapted for operation in anexecution environment, such as execution environment 102 in FIG. 1, forperforming the method illustrated in FIG. 2. The system illustratedincludes a presentation space (PS) monitor component 302, an applicationnavigator component 304, a navigation element handler component 306, anda navigation director component 308. The execution environment includesan instruction-processing unit, such as IPU 104, for processing aninstruction in at least one of the presentation space monitor component302, the application navigator component 304, the navigation elementhandler component 306, and the navigation director component 308. Someor all of the exemplary components illustrated in FIG. 3 may be adaptedfor performing the method illustrated in FIG. 2 in a number of executionenvironments. FIGS. 4a-d include block diagrams illustrating thecomponents of FIG. 3 and/or analogs of the components of FIG. 3 adaptedfor operation in various execution environments 401 including and/orotherwise provided by one or more nodes.

FIG. 1 illustrates components of an exemplary device that may at leastpartially provide and/or otherwise be included in an executionenvironment. The components illustrated in FIGS. 4a-d may be included inor otherwise combined with the components of FIG. 1 to create a varietyof arrangements of components according to the subject matter describedherein.

FIG. 5 illustrates user node 502 as an exemplary device that in variousaspects may be included in and/or otherwise adapted for providing any ofexecution environments 401 illustrated in FIGS. 4a-c , each illustratinga different adaptation of the arrangement of components in FIG. 3. FIG.5 illustrates that user node 502 is operatively coupled to network 504via a network interface component, such as NIA 114. Alternatively oradditionally, an adaptation of an execution environment 401 may includeand/or may otherwise be provided by a device that is not operativelycoupled to a network. Application provider node 506 may be included inand/or otherwise adapted for providing execution environment 401 dillustrated in FIG. 4d . As illustrated in FIG. 5, application providernode 506 is operatively coupled to network 504 via a network interfacecomponent included in execution environment 401 d.

FIG. 4a illustrates execution environment 401 a hosting application 403a including an adaptation of the arrangement of components in FIG. 3.FIG. 4b illustrates execution environment 401 b hosting browser 403 bincluding an adaptation of the arrangement of components in FIG. 3 thatmay operate at least partially in a network application agent 405 breceived from a remote application provider, such as network application403 d in FIG. 4d . Browser 403 b and execution environment 401 b mayprovide at least part of an execution environment for networkapplication agent 405 b that may be received via a network from anetwork application operating in a remote execution environment. FIG. 4cillustrates an arrangement of the components in FIG. 3 adapted tooperate in GUI subsystem 437 c of execution environment 401 c. Thearrangement in FIG. 4c may mediate communication between applications inexecution environment 401 c and one or more output devices, such asoutput device 130 in FIG. 1.

FIG. 4d illustrates execution environment 401 d configured to host oneor more network applications, such as a Web service, illustrated bynetwork application 403 d. FIG. 4d also illustrates network applicationplatform 409 d that may provide services to one or more networkapplications. Network application 403 d includes yet another adaptationof the arrangement of components in FIG. 3.

The various adaptations of the arrangement in FIG. 3 are not exhaustive.For example, those skilled in the art will see based on the descriptionherein that arrangements of components for performing the methodillustrated in FIG. 2 may be at least partially included in anapplication and at least partially external to the application. Further,arrangements for performing the method illustrated in FIG. 2 may bedistributed across more than one node and/or execution environment. Forexample, such an arrangement may operate at least partially in browser403 b in FIG. 4b and at least partially in execution environment 401 din and/or external to network application 403 d in FIG. 4 d.

FIGS. 4a-d illustrate adaptations of network stacks 411 configured forsending and receiving messages over a network, such as network 504, viaa network interface component. Network application platform 409 d inFIG. 4d provides services to one or more network applications. Invarious aspects, network application platform 409 d may include and/orinteroperate with a web server. FIG. 4d also illustrates networkapplication platform 409 d configured for interoperating with networkstack 411 d directly and/or indirectly.

Network stacks 411 may support the same protocol suite, such as TCP/IP,or may communicate via a network gateway or other protocol translationdevice and/or service. For example, browser 403 b in FIG. 4b and networkapplication platform 409 d in FIG. 4d may interoperate via theirrespective network stacks: network stack 411 b and network stack 411 d.

FIGS. 4a-d illustrate applications 403, respectively, which maycommunicate via one or more application layer protocols. FIGS. 4a-drespectively illustrate application protocol components 413 forcommunicating via one or more application layer protocols. Exemplaryapplication protocols include hypertext transfer protocol (HTTP) andinstant messaging and presence (XMPP-IM) protocol. Matching protocolsenabling applications 403 to communicate via network 504 in FIG. 5 arenot required, if communication is via a protocol gateway or othertranslator.

In FIG. 4b , browser 403 b may receive some or all of networkapplication agent 405 b in one more messages sent from a networkapplication, such as network application 403 d via network applicationplatform 409 d, a network stack 411, a network interface component, andoptionally an application protocol component 413. In FIG. 4b , browser403 b includes content manager component 415 b. Content managercomponent 415 b may interoperate with one or more of applicationprotocol components 413 b and/or network stack 411 b to receive themessage or messages including some or all of network application agent405 b.

Network application agent 405 b may include a web page for presenting auser interface for network application 403 d. The web page may includeand/or reference data represented in one or more formats includinghypertext markup language (HTML) and/or other markup language,ECMAScript and/or other scripting language, byte code, image data, audiodata, and/or machine code.

In an example, in response to a request received from browser 403 b inFIG. 4b operating in user node 502 in FIG. 5, controller component 417d, in FIG. 4d , operating in application provider node 506 may invokemodel subsystem 419 d to perform request-specific processing. Modelsubsystem 419 d may include any number of request handlers (not shown)for dynamically generating data and/or retrieving data from modeldatabase 421 d based on the request. Controller component 417 d mayfurther invoke template engine component 423 d to identify one or moretemplates and/or static data elements for generating a user interfacefor representing a response to the received request. FIG. 4d illustratestemplate database 425 d including exemplary template 427 d. FIG. 4dillustrates template engine 423 d as a component in view subsystem 429 dconfigured to return responses to processed requests in a presentationformat suitable for a client, such as browser 403 b. View subsystem 429d may provide the presentation data to controller component 417 d tosend to browser 403 b in response to the request received from browser403 b. Some or all of network application agent 405 b may be sent tobrowser 403 b via network application platform 409 d as described above.

While the example above describes sending some or all of networkapplication agent 405 b in response to a request, network application403 d additionally or alternatively may send some or all of a networkapplication agent to browser 403 b via one or more asynchronousmessages. An asynchronous message may be sent in response to a changedetected by network application 403 d. Publish-subscribe protocols, suchas the presence protocol specified by XMPP-IM, are exemplary protocolsfor sending messages asynchronously.

The one or more messages including information representing some or allof network application agent 405 b in FIG. 4b may be received by contentmanager component 415 b via one or more of application protocolcomponent(s) 413 b and network stack 411 b as described above. In FIG.4b , browser 403 b includes one or more content handler components 431 bto process received data according to its data type, typicallyidentified by a MIME-type identifier. Exemplary content handlercomponents 431 b include a text/html content handler component forprocessing HTML documents; an application/xmpp-xml content handlercomponent for processing XMPP streams including presence tuples, instantmessages, and publish-subscribe data as defined by various XMPPspecifications; one or more video content handler components forprocessing video streams of various types; and still image data contenthandler components for processing various images types. Content handlercomponents 431 b process received data and may provide a representationof the processed data to one or more user interface (UI) element handlercomponents 433 b.

UI element handler components 433 are illustrated in presentationcontroller components 435 in FIG. 4a , FIG. 4b , and FIG. 4c . Apresentation controller component 435 may manage visual, audio, and/orother types of output of its including application 403 as well asreceive and route detected user and other inputs to components andextensions of its including application 403. With respect to FIG. 4b , aUI element handler component 433 b in various aspects may be adapted tooperate at least partially in a content handler component 431 b such asa text/html content handler component and/or a script content handlercomponent. Additionally or alternatively, a UI element handler component433 in an execution environments 401 may operate in and/or as anextension of its including application 403, such as a plug-in providinga virtual machine for script and/or byte code, and/or may operateexternal to an interoperating application 403.

FIGS. 6a-e illustrate respective display presentation spaces 602 of adisplay in and/or operatively coupled to a device. FIGS. 6a-e illustratefirst app 604-1 visual components and second app 604-2 visual componentsin respective presentation spaces 602. The various app 604 visualcomponents illustrated in FIGS. 6a-e are described as user interfaces ofvarious applications 403 and other components illustrated in FIGS. 4a-das required in describing the subject matter herein. An application 604visual component may be provided as a user interface of multipleapplications interoperating. For example, an application 604 visualcomponent and/or a visual component included in an application 604visual component may be presented via interoperation of browser 403 b,network application agent 405 b, and network application 403 dillustrated in FIG. 4b and FIG. 4d . Browser 403 b may operate in usernode 502 and network application 403 d may operate in applicationprovider node 506. Network application agent 405 b may be provided touser node 502 by application provider node 506 via network 504, asdescribed above.

Various UI elements of applications 403 described above may be presentedby one or more UI element handler components 433 in FIGS. 4a-c and/or byone or more template engines 423 d in FIG. 4d . In an aspect,illustrated in FIGS. 4a-c , UI element handler component(s) 433 of oneor more applications 403 is/are configured to send representationinformation representing a visual interface element, such as anoperation bar 606 in FIG. 6a and in FIG. 6d , to a GUI subsystem 437. AGUI subsystem 437 may instruct a graphics subsystem 439 to draw thevisual interface element in a region of a respective displaypresentation space 602, based on representation information receivedfrom a corresponding UI element handler component 433.

Input may be received corresponding to a UI element via an input driver441 illustrated in FIGS. 4a-c , in various adaptations. For example, auser may move a mouse to move a pointer presented in a displaypresentation space 602 over an operation user interface elementpresented in an operation bar 606. A user may provide an input detectedby the mouse. The detected input may be received by a GUI subsystem 437via an input driver 441 as an operation or command indicator based onthe association of the shared location of the pointer and the operationuser interface element in display presentation space 602.

The components of a user interface are generically referred to herein asuser interface elements. More specifically, visual components of a userinterface are referred to herein as visual interface elements. A visualinterface element may be a visual component of a graphical userinterface (GUI). Exemplary visual interface elements include windows,textboxes, sliders, list boxes, drop-down lists, spinners, various typesof menus, toolbars, ribbons, combo boxes, tree views, grid views,navigation tabs, scrollbars, labels, tooltips, text in various fonts,balloons, dialog boxes, and various types of button controls includingcheck boxes and radio buttons. An application interface may include oneor more of the elements listed. Those skilled in the art will understandthat this list is not exhaustive. The terms “visual representation”,“visual component”, and “visual interface element” are usedinterchangeably in this document. Other types of user interface elementsinclude audio output components referred to as audio interface elements,tactile output components referred to as tactile interface elements, andthe like.

A “user interface (UI) element handler” component, as the term is usedin this document, includes a component configured to send informationrepresenting a program entity for presenting a user-detectablerepresentation of the program entity by an output device, such as adisplay. A “program entity” is an object included in and/or otherwiseprocessed by an application or executable program component. Theuser-detectable representation is presented based on the sentinformation. The sent information is referred to herein as “presentationinformation”. Presentation information may include data in one or moreformats. Exemplary formats include image formats such as JPEG, videoformats such as MP4, markup language data such as HTML and otherXML-based markup, and/or instructions such as those defined by variousscript languages, byte code, and/or machine code. For example, a webpage received by a browser from a remote application provider mayinclude HTML, ECMAScript, and/or byte code for presenting one or moreuser interface elements included in a user interface of the remoteapplication. Components configured to send information representing oneor more program entities for presenting particular types of output byparticular types of output devices include visual interface elementhandler components, audio interface element handler components, tactileinterface element handler components, and the like.

A representation of a program entity may be stored and/or otherwisemaintained in a presentation space. As used in this document, the term“presentation space” refers to a storage region allocated and/orotherwise provided for storing presentation information, which mayinclude audio, visual, tactile, and/or other sensory data forpresentation by and/or on an output device. For example, a buffer forstoring an image and/or text string may be a presentation space. Apresentation space may be physically and/or logically contiguous ornon-contiguous. A presentation space may have a virtual as well as aphysical representation. A presentation space may include a storagelocation in a processor memory, secondary storage, a memory of an outputadapter device, and/or a storage medium of an output device. A screen ofa display, for example, is a presentation space.

As used herein, the term “program” or “executable” refer to any datarepresentation that may be translated into a set of machine codeinstructions and optionally associated program data. Thus, a programcomponent or executable component may include an application, a sharedor non-shared library, and a system command. Program representationsother than machine code include object code, byte code, and source code.Object code includes a set of instructions and/or data elements thateither are prepared for linking prior to loading or are loaded into anexecution environment. When in an execution environment, object code mayinclude references resolved by a linker and/or may include one or moreunresolved references. The context in which this term is used will makeclear that state of the object code when it is relevant. This definitioncan include machine code and virtual machine code, such as Java™ bytecode.

As used herein, an “addressable entity” is a portion of a program,specifiable in programming language in source code. An addressableentity is addressable in a program component translated from the sourcecode in a compatible execution environment. Examples of addressableentities include variables, constants, functions, subroutines,procedures, modules, methods, classes, objects, code blocks, and labeledinstructions. A code block includes one or more instructions in a givenscope specified in a programming language. An addressable entity mayinclude a value. In some places in this document “addressable entity”refers to a value of an addressable entity. In these cases, the contextwill clearly indicate that the value is being referenced.

Addressable entities may be written in and/or translated to a number ofdifferent programming languages and/or representation languages,respectively. An addressable entity may be specified in and/ortranslated into source code, object code, machine code, byte code,and/or any intermediate languages for processing by an interpreter,compiler, linker, loader, or analogous tool.

Returning to FIGS. 6a-e , first app 604-1 visual components and secondapp 604-2 visual components are collectively and generically arereferred to as app(s) 604 visual components. App 604 visual componentsin FIGS. 6a-e illustrate a number of visual user interface elementscommonly found in application user interfaces. Menu bars 608 areillustrated in first app 604-1 visual components in FIGS. 6a-e . Menubars 608 are illustrated including menu controls for receiving userinput to identify commands to perform. Location bars 609 are illustratedincluding universal resource locators (URLs) identifying sources ofpresented data. App 604 visual components also illustrate user interfaceelements providing respective application presentation spaces 610 forpresenting content including other visual components illustrated byresource user interface elements 612-1 d through 612-nd in FIG. 6drepresenting respective resources.

With reference to FIG. 2, block 202 illustrates that the method includesdetecting, in a first application region of a presentation space of adisplay device, a first visual component of a first operatingapplication in a plurality of operating applications. Accordingly, asystem for navigating between visual components includes means fordetecting, in a first application region of a presentation space of adisplay device, a first visual component of a first operatingapplication in a plurality of operating applications. For example, asillustrated in FIG. 3, presentation space monitor component 302 isconfigured for detecting, in a first application region of apresentation space of a display device, a first visual component of afirst operating application in a plurality of operating applications.FIGS. 4a-d illustrate presentation space monitor components 402 asadaptations and/or analogs of presentation space monitor component 302in FIG. 3. One or more presentation space monitor components 402 operatein execution environments 401.

In FIG. 4a , PS monitor component 402 a is illustrated as a component ofapplication 403 a. In FIG. 4b , PS monitor component 402 b isillustrated as a component of network application agent 405 b. In FIG.4c , PS monitor component 402 c is illustrated operating external to oneor more applications 403 c. Execution environment 401 c includes PSmonitor component 402 c in GUI subsystem 437 c. In FIG. 4d , PS monitorcomponent 402 d is illustrated operating in network application 403 dremote from a display device for presenting and/or updating a visualcomponent. For example, PS monitor component 402 may operate inapplication provider node 506 while a visual component is presented viaa display device of user node 502 based on presentation information sentvia network 504 from application provider node 506.

A visual component may be detected by one or more of receiving a requestto present the visual component, receiving a request for a resource forpresenting the visual component, detecting a change in at least aportion of a presentation space, intercepting a communicationidentifying the visual component, receiving an input corresponding tothe visual component, receiving a notification identifying the visualcomponent, and sending presentation information to present at least aportion of the visual component.

In FIG. 4a , PS monitor 402 a may receive a request to present a visualcomponent, such as app 604 visual component in any of FIGS. 6a-e . PSmonitor component 402 a may be configured to intercept and/or otherwisemediate access to one or more UI element handler components 433 a forpresenting the app 604 visual component and/or other visual componentsof application 403 a. PS monitor component 402 a may send presentationinformation and/or information for generating presentation informationto a UI element handler component 433 a for presenting some or all of avisual component via a display device.

In FIG. 4b , PS monitor component 402 b may receive, intercept, and/orotherwise mediate processing of a request for a resource for presentinga visual component such as a browser tab, a browser window of browser403 b, and/or content received from network application 403 d in FIG. 4doperating in application provider node 506. Content from networkapplication 403 d may include network application agent 405 b and/orcontent retrieved by network application agent 405 b. PS monitorcomponent 402 b may be a component of browser 403 b. Alternatively oradditionally, a PS monitor component 402 may operate as a component ofnetwork application agent 405 b and/or a component of networkapplication 403 d as illustrated by PS monitor component 402 d.

PS monitor component 402 c in FIG. 4c may track and/or otherwise monitorat least some changes to a presentation space accessible to GUIsubsystem 437 c. FIGS. 6a-e illustrate various display presentationspaces 602 and application presentation spaces 610 as exemplarypresentation spaces. A change to a presentation space may includepresenting a visual component via the presentation space, updating avisual component in the presentation space, and/or removing a visualcomponent from the presentation space. A change may be in response to auser input. PS monitor component 402 c may receive and/or otherwisemonitor user input received for a visual component. In an aspect, PSmonitor component 402 c may receive change information by accessing alog maintained by GUI subsystem 437 c and/or graphics subsystem 439 c.The log may be accessed via receiving notifications of log entries.

As described above, a visual component may be detected by an applicationpresenting some or all of the visual component, by a remote node, and/orby a component operating external to an application that presents someor all of the visual component.

In detecting and/or otherwise monitoring a visual component, a PSmonitor component 402 may identify a region in a presentation space thatincludes the visual component. The region is referred to herein as an“application region”. As illustrated in FIGS. 6a-e a visual componentmay be included in a plurality of visual components in a presentationspace. The visual components may be included in user interfaces of aplurality of operating applications.

Returning to FIG. 2, block 204 illustrates that the method furtherincludes presenting a first navigation control, in a first navigationregion determined based on the first application region, for navigatingto a second visual component, of a second application in the plurality,in a second application region in the presentation space. Accordingly, asystem for navigating between visual components includes means forpresenting a first navigation control, in a first navigation regiondetermined based on the first application region, for navigating to asecond visual component, of a second application in the plurality, in asecond application region in the presentation space. For example, asillustrated in FIG. 3, application navigator component 304 is configuredfor presenting a first navigation control, in a first navigation regiondetermined based on the first application region, for navigating to asecond visual component, of a second application in the plurality, in asecond application region in the presentation space. FIGS. 4a-dillustrate application navigator components 404 as adaptations and/oranalogs of application navigator component 304 in FIG. 3. One or moreapplication navigator components 404 operate in execution environments401.

A navigation control is a user interface element for navigating betweenand/or among user interface elements of respective operatingapplications. The user interface elements may be visual components. Anavigation control may include and/or have an application controlrepresenting a particular application. An application control mayinclude and/or have a visual component control representing a particularvisual component in the application represented by the applicationcontrol. An input received corresponding to a particular applicationcontrol may identify a user instruction to navigate to a visualcomponent of the particular application. A user input corresponding to aparticular visual component control may identify a user instruction tonavigate to a particular visual component in a particular applicationcorresponding to an application control that includes and/or otherwisehas the visual component control.

FIGS. 6a-e illustrate various navigation control 614 visual components.Second navigation control 614-2 a illustrates a user interface elementthat is a parent of second app 604-2 a visual component. Navigationcontrol 614-2 a includes and illustrates first application control 616-1a, second application control 616-2 a, and third application control616-3 a. First app 604-1 a visual component may be included in a userinterface for a first application, second app 604-2 a visual componentmay be included in a user interface for a second application, and athird app visual component (not shown) may be included in a userinterface for a third application.

A navigation control may be automatically presented in response topresenting of a corresponding visual component in a user interface of anoperating application. For example, as described, second navigationcontrol 614-2 a includes second app 604-2 a visual component of a secondapplication. In FIG. 4c , GUI subsystem 437 c may receive presentationinformation for presenting second app 604-2 a visual component. GUIsubsystem 437 c may invoke application navigator component 404 c.Application navigator component 404 c may provide a presentation spacefor presenting second app 604-2 a visual component in second navigationcontrol 614-2 a by instructing navigation element handler component 406c to present second navigation control 614-2 a in display presentationspace 602 a.

In another aspect, a navigation control may be presented in response toa navigation-activate input received from a user via an input device.For example, first app 604-1 b visual component in FIG. 6b may bepresented by browser 403 b in FIG. 4b . First navigation control 614-1 bmay be non-existent and/or hidden until a navigation-activate input isreceived by application navigator component 404 b via a UI elementhandler component 433 b. The input may be a hotkey, a touch in adesignated location of a touch screen, and/or a mouse gesture defined asa navigation-activate input. Alternatively or additionally, a pointeruser interface element presented within a specified distance of, forexample, the top, right corner of first app 604-1 b visual component maybe detected as a navigation-activate input. A navigation-activate inputmay be defined by a particular application such as application 403 a inFIG. 4a and/or browser 403 b in FIG. 4b . In another aspect, anavigation-activate input may be defined for an execution environment.For example GUI subsystem 437 c may include and/or otherwise accessconfiguration information defining a navigation-activate input forapplications operating in execution environment 401 c. Further, anavigation-activate input may be defined and/or detected by a noderemote from a node detecting the input. Application navigator component404 d and navigation element handler component 406 d operating inapplication provider node 506 may define and/or may detect anavigation-activate input via browser 403 b and/or network applicationagent 405 b operating in user node 502.

An application navigator component 404 may determine and/or otherwiseidentify a region, in a presentation space, to present a navigationcontrol 614. The navigation region may be determined based on anapplication region as described above. A region including a navigationcontrol is referred to herein as a “navigation region”. As illustratedin FIGS. 6a-e , a navigation region may be determined based on anapplication region in various ways. FIG. 6a illustrates navigationcontrol 614-2 a in a navigation region that includes the applicationregion of second app 604-2 a visual component. FIG. 6b illustratesnavigation control 614-1 b in a navigation region determined based onthe top, right corner of the application region for first app 604-1 bvisual component. FIG. 6c illustrates navigation control 614-1 c in anavigation region based on a portion of a left border of the applicationregion that includes first app 604-1 c visual component. FIG. 6dillustrates navigation control 614-2 d in a navigation region as apop-up or context pane where the navigation region may be determinedbased on a location corresponding to an input detected in theapplication region including second app 604-2 d visual component. FIG.6e illustrates navigation control 614-1 e in a navigation region boundto menu bar 608-1 e in the application region that includes first app604-1 e visual component.

Returning to FIG. 2, block 206 illustrates that the method yet furtherincludes detecting a user input corresponding to the first navigationcontrol. Accordingly, a system for navigating between visual componentsincludes means for detecting a user input corresponding to the firstnavigation control. For example, as illustrated in FIG. 3, navigationelement handler component 306 is configured for detecting a user inputcorresponding to the first navigation control. FIGS. 4a-d illustratenavigation element handler component 406 as adaptations and/or analogsof navigation element handler component 306 in FIG. 3. One or morenavigation element handler components 406 operate in executionenvironments 401.

In an aspect, an input may be detected by a navigation element handlercomponent 406 in FIGS. 4a-d . The navigation element handler component406 may determine a second visual component based on an ordering ofapplications and/or their respective visual components maintained by acorresponding application navigation component 404. For example, anordering may be based on a z-level of visual components, a priorityassigned to an application process providing a context for an operatingapplication, a priority and/or other attribute of a thread in anapplication process, and/or a user-specified ordering. In an aspect, anavigation element handler component 406 and/or an applicationnavigation component 404 b may identify an application and/or a visualcomponent of an application randomly. For example, applications and/orvisual components may be assigned numbers and a random number generatormay be invoked to identify an application and/or visual componentidentified by a number generated by the random number generator.

Detecting a user input corresponding to a navigation control may includedetecting the user input corresponding to an application controlincluded in and/or otherwise associated with the navigation control. Anavigation control may include one or more application controlscorresponding to one or more respective applications. In another aspect,an application control corresponding to a particular application may beincluded in a navigation control. A user input may be detectedcorresponding to a particular application control in a navigationcontrol. The application control identifies an application. A navigationelement handler component 406 may interoperate with an applicationnavigation component 404 to identify a visual component of theapplication 403, such as the application's main window, a visualcomponent most recently updated, and/or a visual component assignedinput focus for an input device.

Detecting a user input corresponding to a navigation control may includedetecting the user input corresponding to a visual component controlincluded in and/or otherwise associated with the navigation control. Avisual component control may be included in and/or otherwise associatedwith an application control corresponding to an application of a visualcomponent corresponding to the visual component control. A navigationcontrol and/or an application control may include one or more visualcomponent controls corresponding to one or more respective visualcomponents. A visual component control may be included in an applicationcontrol, corresponding to a particular application, included in anavigation control. A user input may be detected corresponding to aparticular visual component control in a navigation control. The visualcomponent control identifies a particular visual component in aparticular application. A navigation element handler component 406 mayinteroperate with an application navigation component 404 to identifythe visual component of the application.

A navigation element handler component 406 may determine and/orotherwise detect an input corresponding to a navigation control 614. Asillustrated in FIGS. 6a-e , a navigation control may be presented invarious ways. A navigation control as illustrated in FIGS. 6a-e mayinclude an application control 616 and/or a visual component control618.

FIG. 6a illustrates first application control 616-1 a, secondapplication control 616-2 a, and third application control 616-3 a insecond application control 614-2 a. FIG. 6b illustrates firstapplication control 616-1 b, second application control 616-2 b, andthird application control 616-3 b as menu items and/or submenus innavigation control 614-1 b presented as a menu. FIG. 6c illustratesfirst application control 616-1 c, second application control 616-2 c,and third application control 616-3 c as first level nodes in navigationcontrol 614-1 c presented as a tree view user interface control. FIG. 6calso illustrates three visual component controls 618-1 c, 618-2 c, 618-3c as child nodes of second application control 616-2 c. FIG. 6dillustrates first application control 616-1 d, second applicationcontrol 616-2 d, and third application control 616-3 d as first levelnodes in navigation control 614-2 d presented as a tree view contextuser interface control. FIG. 6d also illustrates three visual componentcontrols 618-1 d, 618-2 d, 618-3 d as child nodes of second applicationcontrol 616-2 d. FIG. 6e illustrates no application control for firstapp 604-le visual component. FIG. 6e illustrates second applicationcontrol 616-2 e and third application control 616-3 e as menu itemsand/or submenus in navigation control 614-1 e. FIG. 6e also illustratesthree visual component controls 618-1 e, 618-2 e, 618-3 e as a childmenu items of third application control 616-3 e.

An application navigation component 404 may invoke one or morenavigation element handler components 406 to present and/or detect inputfor respective application controls and/or visual component controls.

Returning to FIG. 2, block 208 illustrates that the method yet furtherincludes sending, in response to detecting the user input, navigationinformation to navigate to the second visual component. Accordingly, asystem for navigating between visual components includes means forsending, in response to detecting the user input, navigation informationto navigate to the second visual component. For example, as illustratedin FIG. 3, navigation director component 308 is configured for sending,in response to detecting the user input, navigation information tonavigate to the second visual component. FIGS. 4a-d illustratenavigation director components 408 as adaptations and/or analogs ofnavigation director component 308 in FIG. 3. One or more navigationdirector components 408 operate in execution environments 401.

Sending the navigation information may include sending the navigationinformation by invoking a function, a method, and/or a subroutine.Sending the navigation information may include sending the navigationinformation by sending a message via a network. The message may be sentasynchronously. The message, in another aspect, may be included in arequest/response exchange. Sending the navigation information mayinclude sending the navigation information by sending data via aninter-process communication (IPC) including, for example, a messagequeue, a pipe, an interrupt, a semaphore, and/or a lock. Sending thenavigation information may include sending the navigation informationvia a shared data area.

Navigation information may include information for changing an attributeof a visual component. For example, a z-order attribute, an input focusattribute, a size attribute, a location attribute, a font, a color,and/or a transparency level may be changed based on navigationinformation for a visual component being navigated to and/or a visualcomponent being navigated from.

In FIG. 4a , navigation director component 408 a may send navigationinformation to a specified message queue in execution environment 401 a.Applications operating in execution environment 401 a may subscribe toand/or poll the message queue to receive a navigation instruction.Navigation information may identify a visual component and/or anapplication to navigate to. An identified application may determine avisual component to navigate to if a visual component of the applicationis not identified by the navigation information.

In FIG. 6a , first app 604-1 a visual component may be included in auser interface for application 403 a in execution environment 401 a. Aninput corresponding to second application control 616-2 a may bedetected by navigation element handler component 406 a. Navigationelement handler component 406 a, application navigation component 404 a,and/or navigation director component 408 a may generate navigationinformation based on second application control 616-2 a. Navigationdirector component 408 a may post the navigation information to amessage queue, write the navigation information to a pipe configured forexchanging navigation information between and/or among applications,and/or store the navigation information in a shared data area accessibleto other applications in execution environment 401 a. A secondapplication may receive the navigation information and determine thatthe navigation information identifies the second application. The secondapplication may update second app 604-2 a visual component, for example,so that it is presented on top of first app 604-1 a visual component asshown in FIG. 6a . The second application may determine a visualcomponent of a user interface of second application to which tonavigate. The determination may be user configurable and/or determinedby execution environment 401 a.

In FIG. 4b , navigation director component 408 b may operate asdescribed above. Alternatively or additionally, navigation directorcomponent 408 b operating in user node 502 may send a message vianetwork 504 to a remote node, such as application provider node 506.Network application 403 d may provide a subscription service. Navigationdirector component 408 b may send navigation information to a specifiedpublish-subscribe tuple and/or service. Applications operating inexecution environment 401 a may subscribe to and/or poll the tupleand/or service to receive navigation information. Navigation informationmay identify a visual component and/or an application to navigate to. Anidentified application may determine a visual component to navigate toif a visual component of the application is not identified by thenavigation information. In FIG. 6b , first app 604-1 b visual componentmay be included in a user interface for browser 403 b in executionenvironment 401 b. An input corresponding to first visual componentcontrol 618-1 b associated with third application control 616-3 b asillustrated may be detected by navigation element handler component 406b. Navigation element handler component 406 b, application navigationcomponent 404 b, and/or navigation director component 408 b may generatenavigation information based on first visual component control 618-1 b.Navigation director component 408 b may post the navigation informationvia an asynchronous message to the specified tuple and/or service. Thetuple and/or service may be accessible to other applications inexecution environment 401 b via a subscription and/or via polling fornavigation information.

A second application may receive the navigation information anddetermine that the navigation information identifies a thirdapplication. The second application may ignore the navigationinformation or may change an attribute of a visual component in a userinterface of the second application in accordance with the instructionto navigate to the identified visual component of the third application.The third application may update a third app visual component. The thirdapp visual component may be minimized prior to processing the navigationinstruction, may be hidden behind another visual component, and/or mayotherwise not be visible to a user. The third application may presentthe visual component identified by visual component control 618-1 baccording to the navigation instruction represented in and/or by thenavigation information.

In an aspect, an input detected corresponding to a navigation controlmay be communicated by user node 502 to network application 403 doperating in application provider node 506. The input information may bereceived by navigation element handler component 406 d. The navigationcontrol presented by user node 502 may be presented based on presentedinformation provided by application navigation component 404 d based onvisual components detected by PS monitor component 402 d interoperatingwith user node 502. Navigation director component 408 d may send thenavigation information to any number of requesting and/or otherwiseidentified client nodes, such as user node 502. In another aspect,navigation director component 408 d may determine a node to receive thenavigation information. Navigation director component 408 d may send thenavigation information to the node identified by the determination.Navigation director component 408 d may send the navigation informationin an unsolicited message via an asynchronous message and/or may sendthe navigation information in response to a request from the identifiednode.

In FIG. 4c , navigation director component 408 c may send navigationinformation by invoking a function, method, subroutine, and/or otheraddressable instruction in an application identified based on thedetected input corresponding to a navigation control. Applicationsoperating in execution environment 401 c may register an invocationpoint with GUI subsystem 437 c. Registration may be explicit and/orimplicit in an interoperation between an application 403 c and GUIsubsystem 437 c. Navigation information may identify a visual componentand/or an application to navigate to. An identified application maydetermine a visual component to navigate to if a visual component of theapplication is not identified by the navigation information. In FIG. 6c, first app 604-1 c visual component may be included in a user interfacefor an application 403-1 c in execution environment 401 c. An inputcorresponding to second application control 616-2 c may be detected bynavigation element handler component 406 c. Navigation element handlercomponent 406 c, application navigation component 404 c, and/ornavigation director component 408 c may generate navigation informationbased on second application control 616-2 c. Navigation directorcomponent 408 c may invoke second application 403-2 c providing accessto the navigation information via the invocation. Second application403-2 c may receive the navigation information and determine a visualcomponent to navigate to if one is not identified in the navigationinformation. The second application may update second app 604-2 c visualcomponent by moving it from behind first app 604-1 c visual component.

In another aspect, navigation director component 408 c may invoke firstapplication 403-1 c, instructing first application 403-1 c to change atransparency level of first app 604-1 c visual component allowing secondapp 604-2 c visual component to be visible to a user. Navigationdirector component 408 c may assign input focus for one or more inputdevices to the visual component of second application 403-2 c so thatinput from the one or more input devices is routed to second application403-2 c and corresponds to the visual component according to thenavigation instruction of the navigation information. In variousaspects, one or both of first application 403-1 c and second application403-2 c may be sent navigation information. In another aspect, neitherfirst application 403-1 c nor second application 403-2 c may be sentnavigation information. Rather, navigation information may be sent to acomponent of GUI subsystem 437 c. For example, GUI subsystem 437 c maychange the transparency level of first app 604-1 c visual component andassign input focus to second app 604-2 c visual component in navigatingto second app 604-2 c visual component.

As described above, in response to navigating to a visual component, anavigation control, in a navigation region determined based on theapplication region of the visual component, may be presented fornavigating from the visual component to another visual component. Thussome or all visual components of some or all operating applications inan execution environment may be presented with a navigation control fornavigating to another visual component of the same and/or of a differentapplication.

The method illustrated in FIG. 2 may include additional aspectssupported by various adaptations and/or analogs of the arrangement ofcomponents in FIG. 3. In various aspects, a visual component may beincluded in and/or may include window, a dialog box, a textbox, a checkbox, a radio button, a slider, a list box, a drop-down list, a spinner,a menu, a menu item, a toolbar, a ribbon, a combo box, a tree view, agrid view, a navigation tab, a scrollbar, a label, a tooltip, a balloon,a slide-out control, a pop-up, a pop-over, a pop-under, and a sidebar,to name a few examples.

A first application presenting a first visual component may operate in afirst process in an execution environment and a second applicationpresenting a second visual component may operate in a second process inthe execution environment. Further, the first and second application maybe generated from different source code. The first application may berepresented in a processor memory by at least a portion of a firstprogram generated from first source code and the second application maybe represented in a processor memory by at least a portion of a secondprogram generated from second source code

Detecting a visual component may include detecting a measure ofvisibility of the first visual component to a user. A measure ofvisibility may be based on at least one of a z-order, an attribute of afont, a size, a location in the presentation space, a transparencyattribute, and/or a size of a visible portion of a visual component. Forexample, in FIG. 4c PS monitor component 402 c may receive informationidentifying a measure of visibility for any visual component processedby GUI subsystem 437 c.

A navigation control for a visual component may be presented in responseto a change detected in a visually detectable attribute of the visualcomponent. For example, an application navigator component 404 in FIGS.4a-d may be configured to hide a navigation control 614 in response tomaximizing a corresponding app 604 visual component in a user interfaceof an application 403. When the app 604 visual component is restored toits non-maximized state, the application navigation component 404 maypresent a navigation control 614 for the app 604 visual component. Thenavigation control 614 may be presented automatically in response to aninput and/or other instruction to present the app 604 visual componentin its normal state, neither minimized nor maximized.

A navigation region may be determined based on a location of a visualcomponent, a parent visual component of the visual component, and achild visual component of the visual component. For example, in FIG. 6aan application navigation component 404 in FIGS. 4a-d may determine anavigation region for second navigation control 614-2 a where secondnavigation control 614-2 a is a parent of second app 604-2 a visualcomponent and includes an application region of the visual component,second app 604-2 a. FIG. 6b illustrates that an application navigationcomponent 404 may determine a navigation region including navigationcontrol 614-1 b where the navigation region is adjacent to theapplication region of first app 604-1 b visual component. FIG. 6eillustrates that an application navigation component 404 may determine anavigation region based on menu bar 608-1 e included as a child visualcomponent in first app 604-1 e visual component.

A navigation region may be determined based on a border of a visualcomponent, a parent visual component of the visual component, and achild visual component of the visual component. FIG. 6b and FIG. 6cillustrate navigation regions for navigation control 614-1 b andnavigation control 614-1 c respectively determined based on a border offirst app 604-1 b visual component and first app 604-1 c visualcomponent. FIG. 6b and FIG. 6c further illustrate that a navigationregion may share a border with an associated application region, may beat least partially included in the application region, and may beoutside the application region.

In an aspect, a navigation control and/or an associated visual componentmay be at least partially transparent. A transparency attribute of thenavigation control and/or the visual component may be responsive to achange in a position of a visual representation of an input pointer, achange in an input focus attribute associated with at least one of thenavigation control and the visual component, and/or a transparencyattribute of the respective visual component and/or the navigationcontrol. A navigation element handler component 406 in FIGS. 4a-d may beconfigured to manage the transparency of a navigation control and mayfurther interoperate with a UI element handler component 433 and/or agraphics subsystem 439 to manage transparency of a corresponding visualcomponent.

Presenting a navigation control may include detecting the navigationcontrol presented in a previous navigation region determined based on acorresponding application region. Presenting may further includedetecting a move indication (in response to a detected user input), anddetermining the navigation region based on at least one of a currentapplication region and the previous navigation region. A navigationregion may be determined based on the move indication. Further,presenting the navigation control may include determining that acorresponding application region differs from a previous applicationregion in the presentation space, which includes a visual component thatcorresponded to the navigation region prior to the presenting.Presenting may further include presenting the navigation control in thenavigation region from a previous navigation region determined based onthe previous application region.

For example, an application navigation component 404 and/or a navigationelement handler component 406 may be configured to minimize movement ofa navigation control 614 and present the navigation control 614 along aborder of a corresponding visual component. When the visual component ismoved and/or resized, the application navigation component 404 and/or anavigation element handler component 406 determine a navigation regionto include the moved and/or resized navigation control 614 based on theprevious navigation region and based on the new application region.Alternatively or additionally, a first input may indicate that anavigation control is to be presented adjacent to a first border of avisual component and a second input may indicate that the navigationcontrol is to be presented as a child visual component of the visualcomponent.

As described above, an application control and/or a visual componentcontrol may be included in and/or activated for receiving input based ona state of a corresponding application and/or a state of a visualcomponent of the corresponding application. A state may indicate that anapplication and/or a visual component is minimized, hidden, partiallyhidden, suspended, blocked, and/or that access is not authorized.

An application control and/or a visual component control may bepresented in a plurality including at least one of a plurality ofapplication controls and a plurality of visual component controls basedon a specified order of at least one of a plurality of applicationscorresponding to the plurality of application controls and a pluralityof visual components corresponding to the plurality of visual componentcontrols. A specified order may be based on a time attribute, anapplication identifier, a z-order attribute, a size attribute, a colorattribute, a font, a state of a process context for an application, astate of a thread context in the process context, and/or a user-assignedorder.

To the accomplishment of the foregoing and related ends, thedescriptions and annexed drawings set forth certain illustrative aspectsand implementations of the disclosure. These are indicative of but a fewof the various ways in which one or more aspects of the disclosure maybe employed. The other aspects, advantages, and novel features of thedisclosure will become apparent from the detailed description includedherein when considered in conjunction with the annexed drawings.

It should be understood that the various components illustrated in thevarious block diagrams represent logical components that are configuredto perform the functionality described herein and may be implemented insoftware, hardware, or a combination of the two. Moreover, some or allof these logical components may be combined, some may be omittedaltogether, and additional components may be added while still achievingthe functionality described herein. Thus, the subject matter describedherein may be embodied in many different variations, and all suchvariations are contemplated to be within the scope of what is claimed.

To facilitate an understanding of the subject matter described above,many aspects are described in terms of sequences of actions that may beperformed by elements of a computer system. For example, it will berecognized that the various actions may be performed by specializedcircuits or circuitry (e.g., discrete logic gates interconnected toperform a specialized function), by program instructions being executedby one or more instruction-processing units, or by a combination ofboth. The description herein of any sequence of actions is not intendedto imply that the specific order described for performing that sequencemust be followed.

Moreover, the methods described herein may be embodied in executableinstructions stored in a computer-readable medium for use by or inconnection with an instruction execution machine, system, apparatus, ordevice, such as a computer-based or processor-containing machine,system, apparatus, or device. As used here, a “computer-readable medium”may include one or more of any suitable media for storing the executableinstructions of a computer program in one or more of an electronic,magnetic, optical, electromagnetic, and infrared form, such that theinstruction execution machine, system, apparatus, or device may read (orfetch) the instructions from the computer-readable medium and executethe instructions for carrying out the described methods. Anon-exhaustive list of conventional exemplary computer-readable mediaincludes a portable computer diskette; a random access memory (RAM); aread only memory (ROM); an erasable programmable read only memory (EPROMor Flash memory); optical storage devices, including a portable compactdisc (CD), a portable digital video disc (DVD), a high definition DVD(HD-DVD™), and a Blu-ray™ disc; and the like.

Thus, the subject matter described herein may be embodied in manydifferent forms, and all such forms are contemplated to be within thescope of what is claimed. It will be understood that various details maybe changed without departing from the scope of the claimed subjectmatter. Furthermore, the foregoing description is for the purpose ofillustration only, and not for the purpose of limitation, as the scopeof protection sought is defined by the claims as set forth hereinaftertogether with any equivalents thereof.

All methods described herein may be performed in any order unlessotherwise indicated herein explicitly or by context. The use of theterms “a” and “an” and “the” and similar referents in the context of theforegoing description and in the context of the following claims are tobe construed to include the singular and the plural, unless otherwiseindicated herein explicitly or clearly contradicted by context. Theforegoing description is not to be interpreted as indicating that anynon-claimed element is essential to the practice of the subject matteras claimed.

I claim:
 1. An apparatus, comprising: a device including at least one processor operatively coupled to a display and non-transitory memory, the memory storing a plurality of applications including a first application and a second application, the device configured to: present, utilizing the at least one processor and the display, a first window of the first application in a presentation space of the display; detect, utilizing the at least one processor, first user input; in response to the detection of the first user input, present, utilizing the at least one processor and the display, a representation of a second window of the second application in a menu, in a particular region of the presentation space of the display, for displaying the second window of the second application in the presentation space of the display in response to a detection of a second user input in connection with the representation of the second window, the particular region: located in a first location adjacent to a second location of the first window, operable for being re-sized in response to the first window being re-sized, and operable for being hidden in response to the first window being maximized; detect, utilizing the at least one processor, the second user input in connection with the representation of the second window of the second application; and in response to the detection of the second user input in connection with the representation of the second window of the second application, present, utilizing the at least one processor and the display, the second window of the second application; wherein the apparatus is configured such that the menu is located in the first location if the first user input includes a first particular input, and the menu is located in a third location if the first user input includes a second particular input.
 2. An apparatus, comprising: a device including at least one processor operatively coupled to a display and non-transitory memory, the memory storing a plurality of applications including a first application and a second application, the device configured to: present, utilizing the at least one processor and the display, a first window of the first application in a presentation space of the display; detect, utilizing the at least one processor, first user input; in response to the detection of the first user input, present, utilizing the at least one processor and the display, a representation of a second window of the second application in a menu, in a particular region of the presentation space of the display, for displaying the second window of the second application in the presentation space of the display in response to a detection of a second user input on the representation of the second window, the particular region: located in a first location adjacent to a second location of the first window, operable for being re-sized in response to the first window being re-sized, and operable for being hidden in response to the first window being maximized; detect, utilizing the at least one processor, the second user input on the representation of the second window of the second application; and in response to the detection of the second user input on the representation of the second window of the second application, present, utilizing the at least one processor and the display, the second window of the second application; wherein the apparatus is configured such that the particular region is located in the first location adjacent to the second location of the first window and the representation of the second window is organized with other representations of other windows for permitting a user to conveniently enter the second user input on the representation of the second window, instead of requiring the user, in connection with the second user input, to locate the second window among an unorganized clutter of different windows and instead of requiring, in connection with the second user input, use of a desktop taskbar.
 3. An apparatus, comprising: a non-transitory memory storing instructions and a plurality of applications including a first application and a second application; a display; and one or more processors in communication with the non-transitory memory and the display, wherein the one or more processors execute the instructions to: detect first user input; in response to the detection of the first user input, present, utilizing the display, a representation of a second window of the second application in a menu, for displaying the second window of the second application in response to a detection of a second user input in connection with the representation of the second window, the menu: located in a first location adjacent to a second location of a first window of the first application, having at least on aspect thereof altered in response to the first window being re-sized, and being hidden in response to the first window being maximized; detect the second user input in connection with the representation of the second window of the second application; and in response to the detection of the second user input in connection with the representation of the second window of the second application, present, utilizing the display, the second window of the second application; wherein the apparatus is configured such that the menu is located in the first location adjacent to the second location of the first window and the representation of the second window is organized with other representations of other windows for permitting the second user input in connection with the representation of the second window, while avoiding requiring, for the representation of the second window, a user to locate the second window among an unorganized clutter of different overlapping windows and while further avoiding requiring, for the representation of the second window, use of a desktop taskbar.
 4. An apparatus, comprising: a device including at least one processor operatively coupled to a display and non-transitory memory, the memory storing a plurality of applications including a first application and a second application, the device configured to: present, utilizing the at least one processor and the display, a first window of the first application; detect first user input; in response to the detection of the first user input, present, utilizing the at least one processor and the display, a representation of a second window that is part of a menu including a group of elements, the menu: located in a first location adjacent to a second location of the first window, and operable for being re-sized in response to the first window being re-sized; detect second user input in connection with the representation of the second window; and in response to the detection of the second user input in connection with the representation of the second window, present, utilizing the at least one processor and the display, the second window; wherein the apparatus is configured such that the menu is positioned on a side of the first window if the first user input includes a first particular input, and the menu is positioned on another side of the first window if the first user input includes a second particular input; the side and the another side are included in different parts of a presentation space; and the menu does not include a representation of the first window, while the first window is presented, because the first window is already presented.
 5. An apparatus, comprising: a device including at least one processor operatively coupled to a display and non-transitory memory, the memory storing a plurality of applications including a first application and a second application, the device configured to: present, utilizing the at least one processor and the display, a first window of the first application; detect first user input; in response to the detection of the first user input, present, utilizing the at least one processor and the display, a representation of a second window that is part of a menu including a group of elements, for presenting the second window, the menu: located in a first location adjacent to a second location of the first window, and operable for being re-sized in response to the first window being re-sized; detect second user input in connection with the representation of the second window; and in response to the detection of the second user input in connection with the representation of the second window, present, utilizing the at least one processor and the display, the second window; wherein the apparatus is configured such that: the first window is associated with the first application and the second window is associated with the second application; and the menu is located in the first location adjacent to the second location of the first window, for permitting a user to enter the second user input in connection with the representation of the second window via a single action without use of a taskbar positioned in a particular location of a presentation space of the display.
 6. An apparatus, comprising: a device including at least one processor operatively coupled to a display and non-transitory memory, the memory storing a plurality of applications including a first application and a second application, the device configured to: present, utilizing the at least one processor and the display, a first window of the first application; detect first user input; in response to the detection of the first user input, present, utilizing the at least one processor and the display, a representation of a second window that is part of a menu including a group of elements, for presenting the second window, the menu: located in a first location adjacent to a second location of the first window, and operable for being re-sized in response to the first window being re-sized; detect second user input in connection with the representation of the second window; and in response to the detection of the second user input in connection with the representation of the second window, present, utilizing the at least one processor and the display, the second window; wherein the apparatus is configured such that: the first window and the second window are both associated with the first application; and the menu is located in the first location adjacent to the second location of the first window and without obstructing window display, for permitting a user to enter the second user input in connection with the representation of the second window via a single action, instead of requiring the user to locate the second window among different cluttered windows and instead of requiring use of a desktop taskbar.
 7. An apparatus, comprising: a device including at least one processor operatively coupled to a display and non-transitory memory, the memory storing a plurality of applications including a first application and a second application, the device configured to: present, utilizing the at least one processor and the display, a first window of the first application; detect first user input; in response to the detection of the first user input, present, utilizing the at least one processor and the display, a representation of a second window that is part of a menu including a group of spaced rectilinear elements, the menu: located in a first location adjacent to a second location of the first window, and operable for being re-sized in response to the first window being re-sized; detect second user input in connection with the representation of the second window; and in response to the detection of the second user input in connection with the representation of the second window, present, utilizing the at least one processor and the display, the second window; wherein the apparatus is configured such that the first window and the second window are both associated with the first application, and the group of spaced rectilinear elements of the menu overlays only empty desktop space regardless as to which of a plurality of locations where the first window is presented, so as to permit the second user input in connection with the representation of the second window for presenting the second window, without requiring a user to locate the second window among a clutter of different windows and without requiring use of a desktop taskbar, all while presenting an unobstructed view of both the menu and the first window.
 8. An apparatus, comprising: a device including at least one processor operatively coupled to a display and non-transitory memory, the memory storing a plurality of applications including a first application and a second application, the device configured to: present, utilizing the at least one processor and the display, a first window of the first application; detect first user input; in response to the detection of the first user input, present, utilizing the at least one processor and the display, a second window element that is part of a menu including a group of spaced rectilinear elements and is associated with a second window, the menu: located in a first location adjacent to a second location of the first window, and operable for being at least one of re-sized or moved in response to the first window being at least one of re-sized or moved; detect second user input in connection with the second window element associated with the second window; and in response to the detection of the second user input in connection with the second window element associated with the second window, present, utilizing the at least one processor and the display, the second window; wherein the apparatus is configured such that the group of spaced rectilinear elements of the menu is at least one of re-sized or moved in response to the first window being at least one of re-sized or moved, so as to permit the second user input in connection with the the second window element associated with the second window, instead of requiring a user to locate the second window among a clutter of different overlapping windows and instead of requiring use of a desktop taskbar.
 9. An apparatus, comprising: a device including at least one processor operatively coupled to a display and non-transitory memory, the memory storing a plurality of applications including a first application and a second application, the device configured to: present, utilizing the at least one processor and the display, a first window of the first application; detect first user input; in response to the detection of the first user input, present, utilizing the at least one processor and the display, a menu including a plurality of elements one of which corresponds to a second window of the second application, the menu: being located in a first location adjacent to a second location of the first window, and having at least one aspect that is configured to be at least one of moved or re-sized in response to the first window being at least one of moved or re-sized; detect second user input on the one of the elements of the menu corresponding to the second window; and in response to the detection of the second user input on the one of the elements of the menu corresponding to the second window, present, utilizing the at least one processor and the display, the second window; wherein the apparatus is configured such that the at least one of the moving or the re-sizing includes the re-sizing, and the at least one aspect of the menu is re-sized in response to the re-sizing of the first window for permitting a user to conveniently enter the second user input on the one of the elements of the menu corresponding to the second window, instead of requiring, in connection with the second user input, the user to locate the second window among an arrangement of unorganized and overlapping different windows and instead of requiring, in connection with the second user input, use of a desktop taskbar.
 10. The apparatus of claim 3 wherein the apparatus is configured such that the first user input involves a hot key.
 11. The apparatus of claim 3 wherein the apparatus is configured such that the first user input includes a touch in a designated location of the display which is part of a touch screen.
 12. The apparatus of claim 3 wherein the apparatus is configured such that the first user input is detected before the first window is presented.
 13. The apparatus of claim 3 wherein the apparatus is configured such that the first user input is detected after the first window is presented.
 14. The apparatus of claim 3 wherein the apparatus is configured such that the first user input is detected while the first window is presented.
 15. The apparatus of claim 3 wherein the apparatus is configured such that the first window is presented in response to a detection of a selection of a representation of the first window of the first application that is part of another instance of the menu.
 16. The apparatus of claim 3 wherein the apparatus is configured such that the representation of the second window of the second application includes a thumbnail.
 17. The apparatus of claim 3 wherein the apparatus is configured such that both a visibility and a size of the menu are changed in response to the first window being re-sized.
 18. The apparatus of claim 3 wherein the apparatus is configured such that it is determined if the first user input includes a predetermined gesture that is preconfigured to automatically cause presentation of the menu in response thereto, and the representation of the window is conditionally presented based on the determination.
 19. The apparatus of claim 3 wherein the apparatus is configured such that the first window is not maximized and not minimized upon a presentation thereof.
 20. The apparatus of claim 3 wherein the apparatus is configured such that an input focus is changed in response to the first user input.
 21. The apparatus of claim 3 wherein the apparatus is configured such that a z-order attribute of the representation of the second window is a function of user input in connection with the second application.
 22. The apparatus of claim 3 wherein the apparatus is configured such that a representation of the first window of the first application is excluded from the menu, because the first window of the first application is already presented.
 23. The apparatus of claim 3 wherein the apparatus is configured such that the first location is adjacent to the second location by being positioned to a side of the second location.
 24. The apparatus of claim 3 wherein the apparatus is configured such that the first location is adjacent to the second location by being vertically spaced with respect to the second location.
 25. The apparatus of claim 3 wherein the apparatus is configured such that the first location is capable of being adjacent to the second location by being vertically spaced with respect to the second location, and by being horizontally spaced with respect to the second location.
 26. The apparatus of claim 3 wherein the apparatus is configured such that an input focus is changed in response to the second user input.
 27. The apparatus of claim 3 wherein the apparatus is configured such that, after being hidden, at least a portion of the menu is re-presented in response to the first window being placed in a non-maximized state.
 28. The apparatus of claim 3 wherein the apparatus is configured such that the representation of the second window is included with a spinner.
 29. The apparatus of claim 3 wherein the apparatus is configured such that the representation of the second window spins.
 30. The apparatus of claim 3 wherein the apparatus is configured such that the representation of the second window scrolls.
 31. The apparatus of claim 3 wherein the apparatus is configured such that the display and at least one input device are each separate components of a touch screen.
 32. The apparatus of claim 3 wherein the apparatus is configured such that the menu overlays empty presentation space.
 33. The apparatus of claim 3 wherein the apparatus is configured such that the representation of the second window presents a state of the second window.
 34. The apparatus of claim 3 wherein the apparatus is configured such that the menu has the at least on aspect thereof altered in response to the first window being re-sized for permitting the second user input in connection with the representation of the second window, even after the first window is re-sized.
 35. The apparatus of claim 3 wherein the apparatus is configured such that the representation of the second window is organized by spinning in conjunction with the other representations of the other windows.
 36. The apparatus of claim 3 wherein the apparatus is configured such that the representation of the second window is organized by scrolling in conjunction with the other representations of the other windows.
 37. The apparatus of claim 3 wherein the apparatus is configured such that the representation of the second window is organized by spinning at least in part and scrolling at least in part, in conjunction with the other representations of the other windows.
 38. The apparatus of claim 3 wherein at least one of: the requirement that the user locate the second window among the unorganized clutter of different overlapping windows, or the requirement that the user use the desktop taskbar, is still permitted, for causing the presentation of the second window, independent of the second user input in connection with the representation of the second window.
 39. The apparatus of claim 3 wherein the apparatus is configured such that the at least one aspect of the menu includes a size thereof.
 40. The apparatus of claim 3 wherein the apparatus is configured such that the at least one aspect of the menu includes a visibility thereof.
 41. The apparatus of claim 3 wherein the apparatus is configured such that the second user input is permitted to be used to cause the presentation of the second window, in addition to permitting the causation by the user locating the second window among the unorganized clutter of different overlapping windows despite the locating not being required in connection with the second user input, and in addition to permitting the causation by the user using the desktop taskbar despite the use of the desktop taskbar not being required in connection with the second user input.
 42. The apparatus of claim 3 wherein the apparatus is configured such that another instance of the menu is capable of being presented after the presentation of the second window so that the another instance of the menu includes a plurality of elements corresponding to the plurality of applications that are operating except the first application and the second application since both the first window and the second window are already presented.
 43. The apparatus of claim 3 wherein the apparatus is configured to determine whether the first user input includes a first particular input or a second particular input, such that the first location is at a first position with respect to the first window if the first user input includes the first particular input and the first location is at a second position, opposite the first position, with respect to the first window if the first user input includes the second particular input.
 44. The apparatus of claim 3 wherein the apparatus is configured such that at least one of: said processor includes an instruction processing unit; said memory includes at least one of processor memory, or persistent secondary memory; said display includes at least part of a touchscreen; said apparatus is configured to avoid a requirement of a repetition of same or similar types of inputs; said apparatus is configured to avoid a requirement of a repetition of same or similar user movements; said first user input precedes the second user input; said apparatus is configured to avoid use of a standard menu of a desktop; said apparatus is configured to avoid use of a taskbar of a desktop; said apparatus is configured to avoid access to a single location of a desktop; said apparatus is configured for switching between the applications; said re-sizing of the at least one aspect is accomplished by re-sizing of an area in which the menu and elements thereof reside; said first window is maximized by filling substantially all of a presentation space of the display; said first window is maximized by filling all of a presentation space of the display; said first window is maximized by filling a maximum amount of a presentation space of the display; said detection of each user input includes detection of a user touch; or each instance of said communication involves at least one bus.
 45. The apparatus of claim 3 wherein the apparatus is configured such that: the first user input includes a touch in a designated location of the display which is part of a touch screen, and the first user input is detected while the first window is presented; the representation of the second window of the second application: is accompanied by a textual identifier for the second application, indicates a state of the second window of the second application, has a z-order attribute that is a function of user input, and has a visibility that is changed in response to the first window being re-sized; and the menu excludes a representation of the first window of the first application since the first window is already presented.
 46. The apparatus of claim 45 wherein the apparatus is configured such that: the first window is presented in response to a detection of a selection of a representation of the first window of the first application of another instance of the menu.
 47. The apparatus of claim 45 wherein the apparatus is configured such that: the representation of the second window of the second application includes a thumbnail.
 48. The apparatus of claim 45 wherein the apparatus is configured such that: the first location is capable of being adjacent to the second location by being vertically spaced with respect to the second location, and by being horizontally spaced with respect to the second location.
 49. The apparatus of claim 45 wherein the apparatus is configured such that: the menu is re-presented after being hidden if the first window is returned to a non-maximized state.
 50. The apparatus of claim 45 wherein the apparatus is configured such that: the representation of the second window is included with a spinner.
 51. The apparatus of claim 45 wherein the apparatus is configured such that: the representation of the second window spins at least in part.
 52. The apparatus of claim 45 wherein the apparatus is configured such that: the representation of the second window scrolls at least in part.
 53. The apparatus of claim 45 wherein the apparatus is configured such that: the representation of the second window spins at least in part as well as scrolls at least in part.
 54. The apparatus of claim 45 wherein the apparatus is configured such that: the menu overlays empty presentation space.
 55. The apparatus of claim 45 wherein the apparatus is configured such that: the menu includes a plurality of window representations that are parents of the first window.
 56. The apparatus of claim 3 wherein the apparatus is configured such that: the first user input involves a hot key and is detected while the first window is presented; the representation of the second window of the second application: is accompanied by a textual identifier for the second application, indicates a state of the second window of the second application, has a z-order attribute that is a function of user input, and has a visibility that is changed in response to the first window being re-sized; and the menu excludes a representation of the first window of the first application since the first window is already presented.
 57. The apparatus of claim 56 wherein the apparatus is configured such that: the representation of the second window of the second application includes a thumbnail; the menu is re-presented after being hidden if the first window is returned to a non-maximized state; the menu includes a plurality of window representations that are parents of the first window; and the menu is located and organized for reducing input overhead when switching between different applications.
 58. The apparatus of claim 56 wherein the apparatus is configured such that: the first window is presented in response to a detection of a selection of a representation of the first window of the first application of another instance of the menu.
 59. The apparatus of claim 56 wherein the apparatus is configured such that: the first location is capable of being adjacent to the second location by being vertically spaced with respect to the second location, and by being horizontally spaced with respect to the second location.
 60. The apparatus of claim 56 wherein the apparatus is configured such that: the representation of the second window spins at least in part and scrolls at least in part.
 61. The apparatus of claim 3 wherein the apparatus is configured such that: the first user input includes a predetermined gesture on a representation of the first window that is preconfigured to automatically cause presentation of the menu; the representation of the second window of the second application: is accompanied by a textual identifier for the second application, indicates a state of the second window of the second application, has a z-order attribute that is a function of user input, and has a visibility that is changed in response to the first window being re-sized; and the menu excludes a representation of the first window of the first application since the first window is already presented.
 62. The apparatus of claim 61 wherein the apparatus is configured such that: the representation of the second window of the second application includes a thumbnail; the menu is re-presented if the first window is returned to a non-maximized state; and the menu includes a plurality of window representations that are parents of the first window.
 63. The apparatus of claim 61 wherein the apparatus is configured such that: the first window is presented in response to a detection of a selection of a representation of the first window of the first application of another instance of the menu.
 64. The apparatus of claim 61 wherein the apparatus is configured such that: the first location is capable of being adjacent to the second location by being vertically spaced with respect to the second location, and by being horizontally spaced with respect to the second location.
 65. The apparatus of claim 61 wherein the apparatus is configured such that: the representation of the second window spins at least in part and scrolls at least in part.
 66. The apparatus of claim 61 wherein the apparatus is configured to determine whether the first user input includes a first particular input or a second particular input, such that the first location is on a first side of the first window if the first user input includes the first particular input and the first location is on a second side of the first window if the first user input includes the second particular input.
 67. The apparatus of claim 1 wherein the apparatus is configured such that the first particular input includes at least two first particular input components and the second particular input includes at least two second particular input components.
 68. The apparatus of claim 67 wherein the apparatus is configured such that at least one of the at least two first particular input components is the same as at least one of the at least two second particular input components.
 69. The apparatus of claim 1 wherein the apparatus is configured such that the first location is at least partially in a bottom half of a virtual screen and the third location is at a side half of the virtual screen.
 70. The apparatus of claim 1 wherein the apparatus is configured such that the first location and the third location are in a bottom half of a physical screen.
 71. The apparatus of claim 1 wherein the apparatus is configured such that the third location is horizontally spaced with respect to the second location, and the third location is vertically spaced with respect to the second location.
 72. The apparatus of claim 1 wherein the apparatus is configured such that the first location is adjacent to the second location by being horizontally spaced with respect to the second location, and the third location is vertically spaced with respect to the second location.
 73. The apparatus of claim 1 wherein the apparatus is configured such that the first user input involves a hot key.
 74. The apparatus of claim 1 wherein the apparatus is configured such that the first user input includes a touch in a designated location of the display which is part of a touch screen.
 75. The apparatus of claim 1 wherein the apparatus is configured such that the first user input is detected before the first window is presented.
 76. The apparatus of claim 1 wherein the apparatus is configured such that the first user input is detected after the first window is presented.
 77. The apparatus of claim 1 wherein the apparatus is configured such that the first user input is detected while the first window is presented.
 78. The apparatus of claim 1 wherein the apparatus is configured such that the first window is presented in response to a detection of a selection of a representation of the first window of the first application that is part of another instance of the menu.
 79. The apparatus of claim 1 wherein the apparatus is configured such that the representation of the second window of the second application includes a thumbnail.
 80. The apparatus of claim 1 wherein the apparatus is configured such that both a visibility and a size of the particular region are changed in response to the first window being re-sized.
 81. The apparatus of claim 1 wherein the apparatus is configured such that it is determined if the first user input includes a predetermined gesture that is preconfigured to automatically cause presentation of the menu in response thereto, and the representation of the window is conditionally presented based on the determination.
 82. The apparatus of claim 1 wherein the apparatus is configured such that the first window is not maximized and not minimized upon the presentation thereof.
 83. The apparatus of claim 1 wherein the apparatus is configured such that the representation of the second window includes an identifier for the second application.
 84. The apparatus of claim 1 wherein the apparatus is configured such that a z-order attribute of the representation of the second window is a function of user input in connection with the second application.
 85. The apparatus of claim 1 wherein the apparatus is configured such that a representation of the first window of the first application is excluded from the menu, because the first window of the first application is already presented.
 86. The apparatus of claim 1 wherein the apparatus is configured such that, after being hidden, the particular region is re-presented if the first window is returned to a non-maximized state.
 87. The apparatus of claim 1 wherein the apparatus is configured such that, after being hidden, at least a portion of the particular region is re-presented in response to the first window being placed in a non-maximized state.
 88. The apparatus of claim 1 wherein the apparatus is configured such that the representation of the second window is included with a spinner.
 89. The apparatus of claim 1 wherein the apparatus is configured such that the representation of the second window spins.
 90. The apparatus of claim 1 wherein the apparatus is configured such that the representation of the second window scrolls.
 91. The apparatus of claim 1 wherein the apparatus is configured such that the display and at least one input device are each separate components of a touch screen.
 92. The apparatus of claim 1 wherein the apparatus is configured such that the particular region overlays empty presentation space.
 93. The apparatus of claim 1 wherein the apparatus is configured such that the representation of the second window presents a state of the second window.
 94. The apparatus of claim 1 wherein the apparatus is configured such that the particular region is operable for being re-sized in response to the first window being re-sized for permitting the second user input in connection with the representation of the second window, even after the first window is re-sized.
 95. The apparatus of claim 1 wherein the apparatus is configured such that: the first user input includes a touch in a designated location of the display which is part of a touch screen, and the first user input is detected while the first window is presented; the representation of the second window of the second application: is accompanied by a textual identifier for the second application, indicates a state of the second window of the second application, has a z-order attribute that is a function of user input, and has a visibility that is changed in response to the first window being re-sized; and the menu excludes a representation of the first window of the first application since the first window is already presented.
 96. The apparatus of claim 95 wherein the apparatus is configured such that: the first window is presented in response to a detection of a selection of a representation of the first window of the first application of another instance of the menu.
 97. The apparatus of claim 95 wherein the apparatus is configured such that: the representation of the second window of the second application includes a thumbnail; and the menu is located and re-sized for reducing input overhead when switching between different applications.
 98. The apparatus of claim 95 wherein the apparatus is configured such that: the particular region is re-presented after being hidden if the first window is returned to a non-maximized state.
 99. The apparatus of claim 95 wherein the apparatus is configured such that: the representation of the second window is included with a spinner.
 100. The apparatus of claim 95 wherein the apparatus is configured such that: the representation of the second window spins at least in part.
 101. The apparatus of claim 95 wherein the apparatus is configured such that: the representation of the second window scrolls at least in part.
 102. The apparatus of claim 95 wherein the apparatus is configured such that: the representation of the second window spins at least in part as well as scrolls at least in part.
 103. The apparatus of claim 95 wherein the apparatus is configured such that: the particular region overlays empty presentation space.
 104. The apparatus of claim 95 wherein the apparatus is configured such that: the menu includes a plurality of window representations that are parents of the first window.
 105. The apparatus of claim 1 wherein the apparatus is configured such that: the first user input involves a hot key and is detected while the first window is presented; the representation of the second window of the second application: is accompanied by a textual identifier for the second application, indicates a state of the second window of the second application, has a z-order attribute that is a function of user input, and has a visibility that is changed in response to the first window being re-sized; and the menu excludes a representation of the first window of the first application since the first window is already presented.
 106. The apparatus of claim 105 wherein the apparatus is configured such that: the representation of the second window of the second application includes a thumbnail; the particular region is re-presented after being hidden if the first window is returned to a non-maximized state; and the menu includes a plurality of window representations that are parents of the first window.
 107. The apparatus of claim 105 wherein the apparatus is configured such that: the first window is presented in response to a detection of a selection of a representation of the first window of the first application of another instance of the menu.
 108. The apparatus of claim 105 wherein the apparatus is configured such that: the representation of the second window spins at least in part and scrolls at least in part.
 109. The apparatus of claim 1 wherein the apparatus is configured such that: the first user input includes a predetermined gesture on a representation of the first window that is preconfigured to automatically cause presentation of the menu; the representation of the second window of the second application: is accompanied by a textual identifier for the second application, indicates a state of the second window of the second application, has a z-order attribute that is a function of user input, and has a visibility that is changed in response to the first window being re-sized; and the menu excludes a representation of the first window of the first application since the first window is already presented.
 110. The apparatus of claim 109 wherein the apparatus is configured such that: the representation of the second window of the second application includes a thumbnail; the menu is re-presented if the first window is returned to a non-maximized state; and the menu includes a plurality of window representations that are parents of the first window.
 111. The apparatus of claim 109 wherein the apparatus is configured such that: the first window is presented in response to a detection of a selection of a representation of the first window of the first application of another instance of the menu.
 112. The apparatus of claim 109 wherein the apparatus is configured such that: the representation of the second window spins at least in part and scrolls at least in part.
 113. The apparatus of claim 2 wherein the apparatus is configured such that the representation of the second window is organized by being included with a spinner.
 114. The apparatus of claim 2 wherein the apparatus is configured such that the representation of the second window is organized by spinning at least in part and scrolling at least in part.
 115. The apparatus of claim 2 wherein the apparatus is configured such that the user is permitted to conveniently enter the second user input on the representation of the second window, in addition to the user locating the second window among the unorganized clutter of different windows.
 116. The apparatus of claim 2 wherein the apparatus is configured such that the user is permitted to conveniently enter the second user input on the representation of the second window, in addition to the user using the desktop taskbar.
 117. The apparatus of claim 2 wherein the apparatus is configured such that: the first user input includes a touch in a designated location of the display which is part of a touch screen, and the first user input is detected while the first window is presented; the representation of the second window of the second application: is accompanied by a textual identifier for the second application, indicates a state of the second window of the second application, has a z-order attribute that is a function of user input, and has a visibility that is changed in response to the first window being re-sized; and the menu excludes a representation of the first window of the first application since the first window is already presented.
 118. The apparatus of claim 117 wherein the apparatus is configured such that: the first window is presented in response to a detection of a selection of a representation of the first window of the first application of another instance of the menu.
 119. The apparatus of claim 117 wherein the apparatus is configured such that: the representation of the second window of the second application includes a thumbnail.
 120. The apparatus of claim 117 wherein the apparatus is configured such that: the particular region is re-presented after being hidden if the first window is returned to a non-maximized state; and the particular region is located, re-sized, and re-presented for reducing input overhead when switching between different applications.
 121. The apparatus of claim 117 wherein the apparatus is configured such that: the representation of the second window is included with a spinner.
 122. The apparatus of claim 117 wherein the apparatus is configured such that: the representation of the second window spins at least in part.
 123. The apparatus of claim 117 wherein the apparatus is configured such that: the representation of the second window scrolls at least in part.
 124. The apparatus of claim 117 wherein the apparatus is configured such that: the representation of the second window spins at least in part as well as scrolls at least in part.
 125. The apparatus of claim 117 wherein the apparatus is configured such that: the particular region overlays empty presentation space.
 126. The apparatus of claim 117 wherein the apparatus is configured such that: the menu includes a plurality of window representations that are parents of the first window.
 127. The apparatus of claim 2 wherein the apparatus is configured such that: the first user input involves a hot key and is detected while the first window is presented; the representation of the second window of the second application: is accompanied by a textual identifier for the second application, indicates a state of the second window of the second application, has a z-order attribute that is a function of user input, and has a visibility that is changed in response to the first window being re-sized; and the menu excludes a representation of the first window of the first application since the first window is already presented.
 128. The apparatus of claim 127 wherein the apparatus is configured such that: the representation of the second window of the second application includes a thumbnail; the particular region is re-presented after being hidden if the first window is returned to a non-maximized state; and the menu includes a plurality of window representations that are parents of the first window.
 129. The apparatus of claim 127 wherein the apparatus is configured such that: the first window is presented in response to a detection of a selection of a representation of the first window of the first application of another instance of the menu.
 130. The apparatus of claim 127 wherein the apparatus is configured such that: the representation of the second window spins at least in part and scrolls at least in part.
 131. The apparatus of claim 2 wherein the apparatus is configured such that: the first user input includes a predetermined gesture on a representation of the first window that is preconfigured to automatically cause presentation of the menu; the representation of the second window of the second application: is accompanied by a textual identifier for the second application, indicates a state of the second window of the second application, has a z-order attribute that is a function of user input, and has a visibility that is changed in response to the first window being re-sized; and the menu excludes a representation of the first window of the first application since the first window is already presented.
 132. The apparatus of claim 131 wherein the apparatus is configured such that: the representation of the second window of the second application includes a thumbnail; the menu is re-presented if the first window is returned to a non-maximized state; and the menu includes a plurality of window representations that are parents of the first window.
 133. The apparatus of claim 131 wherein the apparatus is configured such that: the first window is presented in response to a detection of a selection of a representation of the first window of the first application of another instance of the menu.
 134. The apparatus of claim 131 wherein the apparatus is configured such that: the representation of the second window spins at least in part and scrolls at least in part.
 135. The apparatus of claim 4 wherein the apparatus is configured such that the first particular input includes at least two first particular input components and the second particular input includes at least two second particular input components.
 136. The apparatus of claim 135 wherein the apparatus is configured such that at least one of the at least two first particular input components is the same as at least one of the at least two second particular input components.
 137. The apparatus of claim 4 wherein the apparatus is configured such that: the first user input includes a touch in a designated location of the display which is part of a touch screen, and the first user input is detected while the first window is presented; the representation of the second window of the second application: is accompanied by a textual identifier for the second application, indicates a state of the second window of the second application, has a z-order attribute that is a function of user input, and has a visibility that is changed in response to the first window being re-sized; and the menu excludes a representation of the first window of the first application since the first window is already presented.
 138. The apparatus of claim 137 wherein the apparatus is configured such that: the first window is presented in response to a detection of a selection of a representation of the first window of the first application of another instance of the menu; the representation of the second window of the second application includes a thumbnail; the menu is re-presented after being hidden if the first window is returned to a non-maximized state; and the menu overlays empty presentation space.
 139. The apparatus of claim 137 wherein the apparatus is configured such that: the representation of the second window spins at least in part as well as scrolls at least in part.
 140. The apparatus of claim 137 wherein the apparatus is configured such that: the menu includes a plurality of window representations that are parents of the first window.
 141. The apparatus of claim 4 wherein the apparatus is configured such that: the first user input involves a hot key and is detected while the first window is presented; the representation of the second window of the second application: is accompanied by a textual identifier for the second application, indicates a state of the second window of the second application, has a z-order attribute that is a function of user input, and has a visibility that is changed in response to the first window being re-sized; and the menu excludes a representation of the first window of the first application since the first window is already presented.
 142. The apparatus of claim 141 wherein the apparatus is configured such that: the representation of the second window of the second application includes a thumbnail; the menu is re-presented after being hidden if the first window is returned to a non-maximized state; the menu includes a plurality of window representations that are parents of the first window; and the first window is presented in response to a detection of a selection of a representation of the first window of the first application of another instance of the menu.
 143. The apparatus of claim 141 wherein the apparatus is configured such that: the representation of the second window spins at least in part and scrolls at least in part.
 144. The apparatus of claim 143 wherein the apparatus is configured such that: the first user input includes a predetermined gesture on a representation of the first window that is preconfigured to automatically cause presentation of the menu; the representation of the second window of the second application: is accompanied by a textual identifier for the second application, indicates a state of the second window of the second application, has a z-order attribute that is a function of user input, and has a visibility that is changed in response to the first window being re-sized; and the menu excludes a representation of the first window of the first application since the first window is already presented.
 145. The apparatus of claim 143 wherein the apparatus is configured such that: the representation of the second window of the second application includes a thumbnail; the menu is re-presented if the first window is returned to a non-maximized state; and the menu includes a plurality of window representations that are parents of the first window.
 146. The apparatus of claim 143 wherein the apparatus is configured such that: the representation of the second window spins at least in part and scrolls at least in part.
 147. The apparatus of claim 5 wherein the apparatus is configured such that the single action includes a touch input on the representation of the second window.
 148. The apparatus of claim 5 wherein the apparatus is configured such that the particular location includes a single location of the presentation space of the display.
 149. The apparatus of claim 5 wherein the apparatus is configured such that: the first user input includes a touch in a designated location of the display which is part of a touch screen, and the first user input is detected while the first window is presented; the representation of the second window of the second application: is accompanied by a textual identifier for the second application, indicates a state of the second window of the second application, has a z-order attribute that is a function of user input, and has a visibility that is changed in response to the first window being re-sized; and the menu excludes a representation of the first window of the first application since the first window is already presented.
 150. The apparatus of claim 149 wherein the apparatus is configured such that: the first window is presented in response to a detection of a selection of a representation of the first window of the first application of another instance of the menu; the menu is re-presented after being hidden if the first window is returned to a non-maximized state; and the menu overlays empty presentation space.
 151. The apparatus of claim 149 wherein the apparatus is configured such that: the representation of the second window spins at least in part as well as scrolls at least in part.
 152. The apparatus of claim 149 wherein the apparatus is configured such that: the menu includes a plurality of window representations that are parents of the first window.
 153. The apparatus of claim 5 wherein the apparatus is configured such that: the first user input involves a hot key and is detected while the first window is presented; the representation of the second window of the second application: is accompanied by a textual identifier for the second application, indicates a state of the second window of the second application, has a z-order attribute that is a function of user input, and has a visibility that is changed in response to the first window being re-sized; and the menu excludes a representation of the first window of the first application since the first window is already presented.
 154. The apparatus of claim 153 wherein the apparatus is configured such that: the menu is re-presented after being hidden if the first window is returned to a non-maximized state; the menu includes a plurality of window representations that are parents of the first window; and the first window is presented in response to a detection of a selection of a representation of the first window of the first application of another instance of the menu.
 155. The apparatus of claim 153 wherein the apparatus is configured such that: the representation of the second window spins at least in part and scrolls at least in part.
 156. The apparatus of claim 5 wherein the apparatus is configured such that: the first user input includes a predetermined gesture on a representation of the first window that is preconfigured to automatically cause presentation of the menu; the representation of the second window of the second application: is accompanied by a textual identifier for the second application, indicates a state of the second window of the second application, has a z-order attribute that is a function of user input, and has a visibility that is changed in response to the first window being re-sized; and the menu excludes a representation of the first window of the first application since the first window is already presented.
 157. The apparatus of claim 156 wherein the apparatus is configured such that: the menu is re-presented if the first window is returned to a non-maximized state; and the menu includes a plurality of window representations that are parents of the first window.
 158. The apparatus of claim 156 wherein the apparatus is configured such that: the representation of the second window spins at least in part and scrolls at least in part.
 159. The apparatus of claim 6 wherein the apparatus is configured such that the single action includes a single touch input on the representation of the second window.
 160. The apparatus of claim 159 wherein the apparatus is configured such that the first application includes at least one browser application, the representation of the second window includes a navigation tab representation, and the second window includes a browser window.
 161. The apparatus of claim 160 wherein the apparatus is configured such that: the first user input includes a touch in a designated location of the display which is part of a touch screen, and the first user input is detected while the first window is presented; the representation of the second window of the second application: is accompanied by a textual identifier for the second application, indicates a state of the second window of the second application, has a z-order attribute that is a function of user input, and has a visibility that is changed in response to the first window being re-sized; and the menu excludes a representation of the first window of the first application since the first window is already presented.
 162. The apparatus of claim 161 wherein the apparatus is configured such that: the first window is presented in response to a detection of a selection of a representation of the first window of the first application of another instance of the menu; the menu is re-presented after being hidden if the first window is returned to a non-maximized state; and the menu overlays empty presentation space.
 163. The apparatus of claim 160 wherein the apparatus is configured such that: the representation of the second window spins at least in part as well as scrolls at least in part.
 164. The apparatus of claim 163 wherein the apparatus is configured such that: the menu includes a plurality of window representations that are parents of the first window.
 165. The apparatus of claim 160 wherein the apparatus is configured such that: the first user input involves a hot key and is detected while the first window is presented; the representation of the second window of the second application: is accompanied by a textual identifier for the second application, indicates a state of the second window of the second application, has a z-order attribute that is a function of user input, and has a visibility that is changed in response to the first window being re-sized; and the menu excludes a representation of the first window of the first application since the first window is already presented.
 166. The apparatus of claim 165 wherein the apparatus is configured such that: the representation of the second window spins at least in part and scrolls at least in part.
 167. The apparatus of claim 166 wherein the apparatus is configured such that: the menu is re-presented after being hidden if the first window is returned to a non-maximized state; the menu includes a plurality of window representations that are parents of the first window; and the first window is presented in response to a detection of a selection of a representation of the first window of the first application of another instance of the menu.
 168. The apparatus of claim 160 wherein the apparatus is configured such that: the first user input includes a predetermined gesture on a representation of the first window that is preconfigured to automatically cause presentation of the menu; the representation of the second window of the second application: is accompanied by a textual identifier for the second application, indicates a state of the second window of the second application, has a z-order attribute that is a function of user input, and has a visibility that is changed in response to the first window being re-sized; and the menu excludes a representation of the first window of the first application since the first window is already presented.
 169. The apparatus of claim 168 wherein the apparatus is configured such that: the menu is re-presented if the first window is returned to a non-maximized state; and the menu includes a plurality of window representations that are parents of the first window.
 170. The apparatus of claim 168 wherein the apparatus is configured such that: the representation of the second window spins at least in part and scrolls at least in part.
 171. The apparatus of claim 7 wherein the apparatus is configured such that the second user input includes a single action in the form of a single touch input on the representation of the second window.
 172. The apparatus of claim 171 wherein the apparatus is configured such that another instance of the menu is capable of being presented after the presentation of the second window so that the another instance of the menu includes at least a portion of the spaced rectilinear elements that correspond to the plurality of applications which are operating except the first application and the second application since both the first window and the second window are already presented.
 173. The apparatus of claim 172 wherein the apparatus is configured such that: the first user input is capable of including a touch in a designated location of the display which is part of a touch screen while the first window is presented; the first user input is further capable of including a predetermined touch gesture on a representation of the first window of the first application that is presented on another instance of the menu; and the representation of the second window of the second application: is accompanied by a textual identifier for the second application, indicates a state of the second window of the second application, has a z-order attribute that is a function of user input, and has a visibility that is changed in response to the first window being re-sized.
 174. The apparatus of claim 173 wherein the apparatus is configured such that: the representation of the second window of the second application spins at least in part as well as scrolls at least in part.
 175. The apparatus of claim 8 wherein the apparatus is configured such that the at least one of re-sized or moved includes re-sized, and the group of spaced rectilinear elements are spaced in a z-direction.
 176. The apparatus of claim 175 wherein the apparatus is configured such that: the first user input includes a touch in a designated location of the display which is part of a touch screen, and the first user input is detected while the first window is presented; the second window element associated with the second window of the second application: is accompanied by a textual identifier for the second application, indicates a state of the second window of the second application, has a z-order attribute that is a function of user input, and has a visibility that is changed in response to the first window being re-sized; and the menu excludes a first window element associated with the first window of the first application since the first window is already presented.
 177. The apparatus of claim 176 wherein the apparatus is configured such that: the first window is presented in response to a detection of a selection of a first window element of another instance of the menu; the menu is re-presented after being hidden if the first window is returned to a non-maximized state; and the menu overlays empty presentation space.
 178. The apparatus of claim 176 wherein the apparatus is configured such that: the second window element associated with the second window spins at least in part as well as scrolls at least in part.
 179. The apparatus of claim 176 wherein the apparatus is configured such that: the menu includes a plurality of window elements that are parents of the first window.
 180. The apparatus of claim 175 wherein the apparatus is configured such that: the first user input involves a hot key and is detected while the first window is presented; the second window element associated with the second window of the second application: is accompanied by a textual identifier for the second application, indicates a state of the second window of the second application, has a z-order attribute that is a function of user input, and has a visibility that is changed in response to the first window being re-sized; and the menu excludes a first window element associated with the first window of the first application since the first window is already presented.
 181. The apparatus of claim 180 wherein the apparatus is configured such that: the second window element associated with the second window of the second application includes a thumbnail; the menu is re-presented after being hidden if the first window is returned to a non-maximized state; the menu includes a plurality of window elements that are parents of the first window; and the first window is presented in response to a detection of a selection of a first window element of another instance of the menu.
 182. The apparatus of claim 181 wherein the apparatus is configured such that: the second window element associated with the second window spins at least in part and scrolls at least in part.
 183. The apparatus of claim 175 wherein the apparatus is configured such that: the first user input includes a predetermined gesture on a first window element associated with the first window of the first application that is preconfigured to automatically cause presentation of the menu, and the first user input is detected prior to the first window being presented in response to the predetermined gesture on the first window element; the second window element associated with the second window of the second application: is accompanied by a textual identifier for the second application, indicates a state of the second window of the second application, has a z-order attribute that is a function of user input, and has a visibility that is changed in response to the first window being re-sized; and the menu excludes a first window element associated with the first window of the first application since the first window is already presented.
 184. The apparatus of claim 183 wherein the apparatus is configured such that: the second window element associated with the second window spins at least in part and scrolls at least in part.
 185. The apparatus of claim 184 wherein the apparatus is configured such that: the second window element associated with the second window of the second application includes a thumbnail; the menu is re-presented if the first window is returned to a non-maximized state; and the menu includes a plurality of window elements that are parents of the first window.
 186. The apparatus of claim 9 wherein the apparatus is configured such that the at least one aspect of the menu includes a visibility thereof.
 187. The apparatus of claim 9 wherein the apparatus is configured such that the at least one aspect of the menu includes a size thereof.
 188. The apparatus of claim 9 wherein the apparatus is configured such that: the first user input includes a touch in a designated location of the display which is part of a touch screen, and the first user input is detected while the first window is presented; the one of the elements of the menu corresponding to the second window: is accompanied by a textual identifier for the second application, indicates a state of the second window of the second application, has a z-order attribute that is a function of user input, and has a visibility that is changed in response to the first window being re-sized; and the menu excludes a first window element associated with the first window of the first application since the first window is already presented.
 189. The apparatus of claim 188 wherein the apparatus is configured such that: the first window is presented in response to a detection of a selection of a first window element of another instance of the menu; the menu is re-presented after being hidden if the first window is returned to a non-maximized state; the menu overlays empty presentation space; and the one of the elements of the menu corresponding to the second window spins at least in part as well as scrolls at least in part.
 190. The apparatus of claim 9 wherein the apparatus is configured such that: the first user input involves a hot key and is detected while the first window is presented; the one of the elements of the menu corresponding to the second window: is accompanied by a textual identifier for the second application, indicates a state of the second window of the second application, has a z-order attribute that is a function of user input, and has a visibility that is changed in response to the first window being re-sized; and the menu excludes a first window element associated with the first window of the first application since the first window is already presented.
 191. The apparatus of claim 190 wherein the apparatus is configured such that: the one of the elements of the menu corresponding to the second window is a thumbnail; the menu is re-presented after being hidden if the first window is returned to a non-maximized state; the first window is presented in response to a detection of a selection of a first window element of another instance of the menu; and the one of the elements of the menu corresponding to the second window spins at least in part and scrolls at least in part.
 192. The apparatus of claim 9 wherein the apparatus is configured such that: the first user input includes a predetermined gesture on a first window element associated with the first window of the first application that is preconfigured to automatically cause presentation of the menu, and the first user input is detected prior to the first window being presented in response to the predetermined gesture on the first window element; the one of the elements of the menu corresponding to the second window: is accompanied by a textual identifier for the second application, indicates a state of the second window of the second application, has a z-order attribute that is a function of user input, and has a visibility that is changed in response to the first window being re-sized; the menu excludes a first window element associated with the first window of the first application since the first window is already presented; the one of the elements of the menu corresponding to the second window spins at least in part and scrolls at least in part; the one of the elements of the menu corresponding to the second window includes a thumbnail; and the menu is re-presented if the first window is returned to a non-maximized state. 